如何使用BATCH脚本删除空文件夹名称包括目录中的空格?

时间:2017-08-16 11:55:02

标签: batch-file

我使用以下内容使用BATCH脚本删除目录中的空文件夹。

for /F %%i in ('dir /b /a:d "C:\test\*"') do >nul 2>nul dir /a-d "%%i\*" || ( rd "%%i" )

但是当文件夹名称包含空格时,它不会删除空文件夹。 (例如“34567 1”)

我尝试使用rd "34567 1",该文件夹可以成功删除。

我使用以下内容尝试显示文件夹名称。

for /F %%i in ('dir /b /a:d "C:\test\*"') do >nul 2>nul dir /a-d "%%i\*" || (echo "%%i" && rd "%%i" ) 

如果文件夹名称包含空格%%i是“系统找不到指定的档案。”(“系统找不到指定文件”从谷歌翻译)

如何使用BATCH脚本删除空文件夹名称包含目录中的空格?

1 个答案:

答案 0 :(得分:0)

For /f默认使用"tokens=1 delims= "

所以%%i只包含第一个空格的路径。

可以插入for /f "delims=" ...For /f "tokens=*" ...来解决此问题

for /F "delims=" %%i in (
    'dir /b /a:d "C:\test\*"'
) do >nul 2>nul dir /a-d "%%i\*" || ( rd "%%i" )

有关详情,请参阅for /?或阅读http://ss64.com/nt/for_f.html

相关问题