有没有办法利用Robocopy,如果针对空的顶级目录调用它,它不会复制它?
我使用Robocopy来识别然后在脚本中压缩的文件和目录 - 使用标准的Windows归档功能无法压缩空目录。
我知道/ s开关可以防止复制空子目录。
答案 0 :(得分:5)
如果您在没有robocopy /s
开关的情况下使用/e
命令,则它不会复制任何空文件夹。由于您遇到空顶级文件夹问题,因此您似乎正在使用robocopy /s /e
。如果您不想要任何空的子文件夹,则只需省略/e
开关,并且不会在目标中创建空文件夹。如果您需要复制空的子文件夹,则无法复制空的顶级文件夹。但是,您可以轻松删除空的顶级文件夹,如下所示:
robocopy C:\Source\Dir X:\Dest\Dir /s /e
cd /d X:\Dest\Dir
for /d %%i in (*.*) do rd "%%i" > nul 2>&1
cd
命令更改为目标驱动器&文件夹,然后for
命令尝试删除所有顶级文件夹。只删除那些空的。 > nul 2>&1
隐藏输出和错误,因为不是空的文件夹将显示错误消息,可以忽略。
答案 1 :(得分:1)
Robocopy / S只能做到这一点,我注意到当你运行命令时,如果在它完成之前查看目标文件夹,你可能会看到一些空文件夹,但是一旦完成这个过程就会消失