我在这个站点上找到了这个用于递归删除空目录的命令,但由于我刚刚注册并且没有任何代表,所以无法评论提出这个问题......
for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"
我犹豫是否在服务器上运行它(在我的 Win7 笔记本电脑上的测试目录中运行良好).....我在我希望它启动的目录中运行它。我应该只在它应该递归检查的目录中运行它吗?还是有办法设置起点?
答案1
在其他目录中启动命令
for /f "delims=" %d in ('dir c:\pathtostart /s /b /ad ^| sort /r') do rd "%d"
并c:\pathtostart
酌情更改。
使用批处理文件
或者创建一个批处理文件RemoveEmptyDirs.cmd
:
@echo off
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d"
并调用如下:
RemoveEmptyDirs c:\pathtostart
移除前进行测试
如果你犹豫不决,那么可以测试一下会发生什么,将其替换rd
为echo
。这将回显将被删除的目录列表。
当您对列表满意时,用 替换echo
并rd
运行删除。
答案2
使用。如果您想从包含空格 ( )dir "%~1"
的目录中开始,这也会处理带引号的路径。RemoveEmptyDirs "C:\program files"