File 批处理以删除空目录(并说明哪些目录不是空的?)
我正在使用:File 批处理以删除空目录(并说明哪些目录不是空的?),file,batch-file,organization,File,Batch File,Organization,我正在使用: for /f "tokens=*" %%d in ('dir /ad/b/s ^| sort /R') do rd "%%d" pause 返回: The directory is not empty. 对于任何非空目录。有没有办法让它明确列出哪些目录不是空的,而不是含糊不清的声明?我知道手动检查目录不需要太多的努力,但这是一个更大的脚本的一部分,我正试图使它更方便用户 rd返回您可以使用的ERRORLEVEL,只需更改: rd "%%d" 为此: rd "%%d" || (
for /f "tokens=*" %%d in ('dir /ad/b/s ^| sort /R') do rd "%%d"
pause
返回:
The directory is not empty.
对于任何非空目录。有没有办法让它明确列出哪些目录不是空的,而不是含糊不清的声明?我知道手动检查目录不需要太多的努力,但这是一个更大的脚本的一部分,我正试图使它更方便用户
rd
返回您可以使用的ERRORLEVEL
,只需更改:
rd "%%d"
为此:
rd "%%d" || (echo Not empty: %%d)
要从rd
中删除错误消息,只需将stderr
重定向到nul
:
rd "%%d" 2>nul || (echo Not empty: %%d)
很好,谢谢。有没有办法只显示文件夹的名称,而不是完整路径?@user2100577-试试
不为空:%%~nd
这正是我需要的,谢谢。我还在习惯奇怪的语法。确保文件夹名称也使用x
,因为任何包含句点的文件夹名称都将在n
和x
之间划分<代码>回显不为空:%%~nxd