有没有办法利用 Robocopy 以便在针对空的顶级目录调用它时不会复制它?
我正在使用 Robocopy 来识别文件和目录,然后将这些文件和目录压缩到脚本中 - 无法使用标准的 Windows 归档功能压缩空目录。
我知道/s 开关可以防止复制空的子目录。
最佳答案
如果您使用 robocopy /s
不带 /e
的命令switch,那么它不会复制任何空文件夹。看来您正在使用 robocopy /s /e
因为您遇到了空顶级文件夹的问题。如果您也不想要任何空的子文件夹,那么只需省略 /e
switch 并且不会在目标中创建空文件夹。如果您需要复制空的子文件夹,那么您无法避免也复制空的顶级文件夹。但是,您可以像这样轻松删除空的顶级文件夹:
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/