如何防止Robocopy处理一个空的顶级目录?

Dev*_*use 5 batch-file robocopy

有没有办法利用Robocopy,如果它是针对一个空的顶级目录调用它不会复制它?

我正在使用Robocopy来识别然后在脚本中压缩的文件和目录 - 使用标准Windows归档功能无法压缩空目录.

我知道/ s开关可以防止复制空子目录.

Jam*_* L. 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
Run Code Online (Sandbox Code Playgroud)

cd命令将更改为目标驱动器和文件夹,然后该for命令将尝试删除所有顶级文件夹.只删除那些空的.该> nul 2>&1隐藏,因为不为空会显示错误信息,这刚好可以忽略不计的文件夹的输出和错误.