有没有办法利用 Robocopy,这样如果对空的顶级目录调用它就不会复制它?
我正在使用 Robocopy 识别文件和目录,然后在脚本中压缩 - 无法使用标准 Windows 归档功能压缩空目录。
我知道 /s 开关可以防止复制空子目录。
有没有办法利用 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
因为非空文件夹将显示错误消息,可以忽略。
Robocopy /S 只能解决问题,我注意到,当您运行命令时,如果您在完成之前查看目标文件夹,您可能会看到一些空文件夹,但一旦该过程完成,它们就会消失。