在批处理文件中连接字符串和数字

Concatenate string and number in batch file

如何在for循环中连接数字和字符串? 我试过这样但它不起作用:

SET PATH=C:\file
FOR /L %%x IN (1,1,5) DO (
    SET "NUM=0%%x"
    SET VAR=%PATH%%NUM%
    ECHO %VAR%
)

像这样修改您的代码:

@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!...! 而不是 %...%

您需要 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.

之外