我使用批处理文件将文件移动到一个级别,通常它可以正常工作,但它失败,文件夹有空格。如何使此脚本适用于包含空格的文件夹?
for /f "delims==" %%i in ('dir /a:d /b') do for /f "delims==" %%f in ('dir %%i /a:d /b') do (move "%%i\%%f\*" "%%i"&&rd "%%i\%%f" /s /q)
答案 0 :(得分:0)
问题是内部HeaderSearch
循环解析的dir
命令的未加引号路径。您需要将for /F
更改为dir %%i /a:d /b
,如下所示:
dir "%%i" /a:d /b
我还将for /f "delims= eol=|" %%i in ('dir /a:d /b') do for /f "delims= eol=|" %%f in ('dir "%%i" /a:d /b') do (move "%%i\%%f\*" "%%i"&&rd "%%i\%%f" /s /q)
选项for /F
(delims==
是可能发生的分隔符)更改为=
(无分隔符)并添加delims=
( eol=|
默认为路径中可能出现的eol
,但;
不能。{/ p>