如何从批处理文件中仅删除空目录

M4N*_*M4N 4 windows batch-file

有没有办法从批处理文件中删除给定目录下的所有空子目录?

或者是否可以递归复制目录,但不包括任何空目录?

Adi*_*sak 13

你真的有两个问题:

1.有没有办法从批处理文件中删除给定目录下的所有空子目录?

是.这个单行DOS批处理文件适合我.您可以为模式/ root传递参数,或者它将使用当前目录.

for /f "delims=" %%d in ('dir /s /b /ad %1 ^| sort /r') do rd "%%d" 2>nul
Run Code Online (Sandbox Code Playgroud)

我使用'dir | sort'的原因是性能('dir'和'sort'都相当快).它避免了其他一个答案中使用的递归批处理函数解决方案,这个解决方案完全有效,但可能非常慢:-(

2.或者是否可以递归复制目录,但不包括任何空目录?

在其他答案中列出了许多方法.


Ale*_* K. 5

要复制忽略空目录,您可以使用以下方法之一:

robocopy c:\source\ c:\dest\ * /s
xcopy c:\source c:\dest\*.* /s
Run Code Online (Sandbox Code Playgroud)