win batch中for循环中的空格
White spaces in the for loop in win batch
我的 Windows 批处理脚本中有以下循环
set Folder = %~1
for %%M in (d:\%Folder%\*.exe) do (
set FileName = %%~nM
echo !FileName!
)
当其中一个文件夹有 space 时,%%M 在第一个 space 之前是有价值的。
我该如何解决?
set "Folder=%~1"
for %%M in ("d:\%Folder%\*.exe") do (
set "FileName=%%~nM"
echo !ModuleName!
)
不知道 ModuleName
的来源(我想你也有延迟扩展的地方)...
!不要使用 set 命令在等号周围使用空格,否则空格将包含在变量名及其值中!
在普通的 FOR 循环中,您可以在包含分隔符的项目中加上双引号并正确处理它们。
我的 Windows 批处理脚本中有以下循环
set Folder = %~1
for %%M in (d:\%Folder%\*.exe) do (
set FileName = %%~nM
echo !FileName!
)
当其中一个文件夹有 space 时,%%M 在第一个 space 之前是有价值的。 我该如何解决?
set "Folder=%~1"
for %%M in ("d:\%Folder%\*.exe") do (
set "FileName=%%~nM"
echo !ModuleName!
)
不知道 ModuleName
的来源(我想你也有延迟扩展的地方)...
!不要使用 set 命令在等号周围使用空格,否则空格将包含在变量名及其值中!
在普通的 FOR 循环中,您可以在包含分隔符的项目中加上双引号并正确处理它们。