【发布时间】:2017-04-27 17:13:29
【问题描述】:
我想打印以下内容:
0
1
2
3
4
我试过这个:
ECHO OFF
FOR /L %%A in (1,1,5) DO (
SET /a "B=%%A-1"
ECHO %B%
)
但是,这给了我:
4
4
4
4
4
如何在我的代码中同时使用A 和B 来实现所需的输出?
【问题讨论】:
-
这是一个延迟扩展问题。懒得去谷歌了,但是在 SO 上已经有数百个这样的问题了。为什么不只是
for /L %%A in (0,1,4)?如果这不切实际,那么您应该setlocal enabledelayedexpansion和echo !B!。如需更多信息,请在 cmd 控制台中执行help set,注意以“终于添加了对延迟环境变量扩展的支持”开头的部分。 -
该代码没有输出 4 五次。它将输出
ECHO IS OFF五次。 -
@Squashman 第一次运行时它输出
ECHO IS OFF5 次,但下次运行时输出45 次。 -
那是因为您在没有关闭 cmd 提示符的情况下再次运行了它(在相关说明中,您可以从命令提示符处运行脚本而不是双击它)。
标签: batch-file variables for-loop echo arithmetic-expressions