我正在对大约十几个不同的值执行相同的长参数化命令,但让我们采用这个简短的例子:
@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
)。
我在这里缺少什么?
答案 0 :(得分:2)
FOR循环有许多不同的类型和行为。
您需要学习文档并确保使用正确的文档。
使用FOR / F会将单个字符串解析为一个或多个标记,只需一次迭代。
您希望使用简单的FOR,并且需要删除引号以便进行多次迭代。带引号的字符串将计为一次迭代。
此外,在批处理文件中使用FOR命令时,必须加倍百分比。
for %%A IN (A1 A2 B1) DO ECHO "Test-%%A"