6

有没有办法利用 Robocopy,这样如果对空的顶级目录调用它就不会复制它?

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

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

4

2 回答 2

7

如果您在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因为非空文件夹将显示错误消息,可以忽略。

于 2013-03-25T14:38:26.740 回答
1

Robocopy /S 只能解决问题,我注意到,当您运行命令时,如果您在完成之前查看目标文件夹,您可能会看到一些空文件夹,但一旦该过程完成,它们就会消失。

于 2015-07-14T11:50:33.810 回答