有没有办法利用Robocopy使其在针对空的顶级目录时不进行复制?
我正在使用Robocopy来识别文件和目录,然后在脚本中对其进行压缩 - 使用标准的 Windows 压缩功能无法压缩空目录。
我知道 /s 开关可以防止复制空子目录。
我正在使用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命令即可解决问题。我注意到,当你运行该命令时,如果在完成之前查看目标文件夹,你可能会看到一些空文件夹,但是一旦进程完成,这些文件夹就会消失。