批处理文件:在for循环中追加一个字符串

Bri*_*ian 8 batch-file

我有以下for循环:

for /l %%a in (1,1,%count%) do (
<nul set /p=" %%a - "

Echo !var%%a!
)
Run Code Online (Sandbox Code Playgroud)

这将显示如下内容:

1 - REL1206
2 - REL1302
3 - REL1306
Run Code Online (Sandbox Code Playgroud)

我需要根据迭代次数创建一个自我附加的变量.在for循环之后,变量的示例如下所示:

myVar="1, 2, 3"
Run Code Online (Sandbox Code Playgroud)

End*_*oro 17

例:

@ECHO OFF &SETLOCAL
SET /a count=5
for /l %%a in (1,1,%count%) do call set "Myvar=%%Myvar%%, %%a"
ECHO %Myvar:~2%
Run Code Online (Sandbox Code Playgroud)

..output是:

1, 2, 3, 4, 5
Run Code Online (Sandbox Code Playgroud)

  • 第一个逗号和空格被行 `echo %Myvar:~2%` 跳过,它输出 %Myvar% 的子字符串,从前两个字符开始, (2认同)

小智 5

使用延迟扩展

setlocal enableextensions enabledelayedexpansion
SET OUTPUTSTRING=
for /l %%a in (1,1,%count%) do (
<nul set /p=" %%a - "
Echo !var%%a! 
if .!OUTPUTSTRING!==. (
    SET OUTPUTSTRING=%%a
) ELSE (
    SET OUTPUTSTRING=!OUTPUTSTRING!, %%a
)
)
SET OUTPUTSTRING
Run Code Online (Sandbox Code Playgroud)