FOR /L %A IN (1,1,100) DO echo %A
批处理脚本中的上述代码会导致此错误:
此时A意外。
相同的命令行在Windows命令提示符下正常工作。
有什么问题?
答案 0 :(得分:2)
您需要使用双百分比字符:
FOR /L %%A IN (1,1,100) DO echo %%A
答案 1 :(得分:1)
问题在于%
,%A
仅用于命令行。
在批处理文件%A
中使用时,应替换为%%A
。
答案 2 :(得分:1)
如果你运行FOR /?
,你会发现参数列表后面的第一段开头如下:
要在批处理程序中使用FOR命令,请改为指定%%变量 %变量。
举个例子,让我们从一个简单的FOR
循环开始:
FOR %x in (*) DO ECHO %x
这将在命令提示符下正常运行,打印出当前目录中每个文件的名称,但如果我们在批处理文件中逐字使用,我们会收到错误说明:
此时出乎意料。
这是因为批处理文件有一些额外的功能,使用百分号后紧跟一些文本,因此当从批处理文件中调用FOR
时,它会查找两个百分号。因此,如果我们想在批处理脚本中使用相同的FOR
循环,我们需要将%x
的每个实例替换为%%x
。
我们最终放入批处理文件的是:
FOR %%x in (*) DO ECHO %%x