有没有一种利用Robocopy的方法,以便在空的顶级目录中调用Robocopy时不会对其进行复制?

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

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

最佳答案

如果您在不使用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隐藏输出和错误,因为不为空的文件夹将显示错误消息,可以忽略该错误消息。

关于batch-file - 如何防止Robocopy处理空的顶层目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15613641/

10-14 08:18