batch file循环与空间在目录名称
我如何修改这个:
for /f %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
当path包含空格时工作?
例如,如果这是从运行
c:\my folder with spaces
它会回应:
c:\my
谢谢
你需要使用:
for /f "delims=" %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
这覆盖了TAB和SPACE的默认分隔符
我通过预先input“type”并在IN子句中放置双引号来解决这个问题
FOR /F %%A IN ('type "c:\A Path With Spaces\A File.txt"') DO ( ECHO %%A )
这篇文章给了我在IN子句中使用“type”的想法。
如果您不想处理“引号”,可以使用%〜dpnx []中的“s”开关…这将输出易于使用的短文件名。
从命令行…
for /f "delims=" %f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %~sdpnxf
在一个.CMD / .BAT文件中,你需要“跳过”[%],例如,双击[%%]
for /f "delims=" %%f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %%~sdpnxf