如何在for循环中连接数字和字符串? 我尝试过这样但是它不起作用:
SET PATH=C:\file
FOR /L %%x IN (1,1,5) DO (
SET "NUM=0%%x"
SET VAR=%PATH%%NUM%
ECHO %VAR%
)
答案 0 :(得分:6)
像这样修改你的代码:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET PATH=C:\file
FOR /L %%x IN (1,1,5) DO (
SET "NUM=0%%x"
SET VAR=%PATH%!NUM!
ECHO !VAR!
)
在处理循环内修改的变量时,您始终必须使用SETLOCAL ENABLEDELAYEDEXPANSION
和!...!
而不是%...%
。
答案 1 :(得分:2)
您需要delayed expansion才能实现这一目标:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET FILEPATH=C:\file
FOR /L %%x IN (1,1,5) DO (
SET "VAR=%FILEPATH%0%%x"
ECHO !VAR!
)
ENDLOCAL & SET VAR=%VAR%
您不需要临时变量NUM
,您可以立即连接字符串部分。
您应该从不更改变量PATH
,因为系统会使用它。因此我将其更改为FILEPATH
。
由于SETLOCAL
创建了一个新的本地化环境块,因此在该块之外无法看到其中定义或更改的所有变量。但是,上面代码中的最后一行演示了如何将 last 连接值传递到ENDLOCAL
以外。