对于具有内联参数列表的循环

时间:2018-03-26 10:55:08

标签: batch-file for-loop

我正在对大约十几个不同的值执行相同的长参数化命令,但让我们采用这个简短的例子:

@ECHO OFF
ECHO "Test-A1"
ECHO "Test-A2"
ECHO "Test-B1"

我现在想让它更易于维护,使用循环对命令进行重复数据删除:

@ECHO OFF
FOR /F %A IN ("A1 A2 B1") DO ECHO "Test-%A"

预期输出与第一个示例相同,但实际输出只是第一行(Test-A1)。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

FOR循环有许多不同的类型和行为。

您需要学习文档并确保使用正确的文档。

使用FOR / F会将单个字符串解析为一个或多个标记,只需一次迭代。

您希望使用简单的FOR,并且需要删除引号以便进行多次迭代。带引号的字符串将计为一次迭代。

此外,在批处理文件中使用FOR命令时,必须加倍百分比。

for %%A IN (A1 A2 B1) DO ECHO "Test-%%A"