![](/img/trans.png)
[英]Script batch does not work in a .bat file, but works if written in a command prompt
[英]Why does FOR loop command not work in a batch file which works on Windows command prompt?
FOR /L %A IN (1,1,100) DO echo %A
批处理脚本中的上述代码导致此错误:
此时A是意外的。
相同的命令行在Windows命令提示符下工作正常。
问题是什么?
您需要使用双百分比字符:
FOR /L %%A IN (1,1,100) DO echo %%A
问题出在%
, %A
仅用于命令行。
在批处理文件中使用时,应将%A
替换为%%A
。
如果运行FOR /?
您会发现参数列表之后的第一段如下所示:
要在批处理程序中使用FOR命令,请指定%% variable而不是%variable。
例如,让我们从一个简单的FOR
循环开始:
FOR %x in (*) DO ECHO %x
这将在命令提示符下正常运行,打印出当前目录中每个文件的名称,但如果我们在批处理文件中使用此逐字记录,则会收到一条错误消息:
x此时是意外的。
这是因为批处理文件具有一些额外的功能,这些功能会立即使用百分号后跟一些文本,因此从批处理文件内部调用FOR
时,它会查找两个百分号。 因此,如果要在批处理脚本中使用相同的FOR
循环,则需要将%x
每个实例替换为%%x
。
我们最终放入批处理文件中的内容是这样的:
FOR %%x in (*) DO ECHO %%x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.