繁体   English   中英

为什么FOR loop命令在Windows命令提示符下可以工作的批处理文件中不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM