将递增计数器连接到批处理文件中的字符串变量

时间:2018-07-14 12:39:34

标签: batch-file string-concatenation

我有一个脚本,可以使用random_tests_0,random_tests_1格式创建一些文件 但是我的变量在添加到文件名字符串时不起作用。

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A num=0
for %%a in (.\gpc_cfgs\*) do ( 
    ECHO !num!
    set filename = random_tests_!num!
    ECHO !filename!
    set /A num+=1
)
OUTPUT:
0
random_tests_0
1
random_tests_0

EXPECTED OUTPUT:
0
random_tests_0
1
random_tests_1

1 个答案:

答案 0 :(得分:2)

设置变量时,名称和变量中都包含=的两侧。 您应该可以使用!filename !来解决此问题,尽管该值仍然会以可能不需要的空格开头!

推荐的语法为Set "VariableName=VariableValue",因此:

@Echo Off
SetLocal EnableDelayedExpansion
Set "num=0"
For %%A In ("gpc_cfgs\*") Do (
    Echo !num!
    Set "filename=random_tests_!num!"
    Echo !filename!
    Set /A num+=1
)

这应该输出与!filenames!中的文件数量相同的gpc_cfgs