batch-file - 如何防止 Robocopy 处理空的顶级目录?

标签 batch-file robocopy

有没有办法利用 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/

相关文章:

windows - 来自 FOR 命令的奇怪行为,其中看似无害的空间。解释?

带有 Robocopy 和参数传递的 Powershell

java - java.awt.Desktop 可以使用管理员权限打开文件吗?

batch-file - 如何使用批处理文件单击按钮?

powershell - Get-Childitem解决方法

deployment - Robocopy 将文件复制到远程机器

powershell - Robocopy/RH 运行结束时间参数

powershell - 具有Mir参数的Robocopy最大量距

windows - 如何批量重命名子目录中特定文件类型的文件?

mysql - 使用mysql数据有条件批处理文件重命名