【问题标题】:Batch for loop prints the same number multiple times批处理循环多次打印相同的数字
【发布时间】:2015-09-23 11:18:00
【问题描述】:

我想写一个批处理文件来显示从 1 到 5 的数字。 这是我的代码:

@ECHO OFF
FOR /l %%A in (1,1,5) do (
    SET number=%%A
    ECHO %number%
)

这是一个输出:

5
5
5
5
5

我的代码有什么问题?

【问题讨论】:

  • 实际上你得到了之前的结果,因为number 没有初始化;在第一次运行时,您会收到ECHO is on.,因为number 在扩展时为空...

标签: loops batch-file for-loop


【解决方案1】:

您缺少ENABLEDELAYEDEXPANSION!number! 而不是%number%

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /l %%A in (1,1,5) DO (
    SET number=%%A
    ECHO !number!
)

当变量在循环内发生变化或结构发生变化时,您必须始终使用ENABLEDELAYEDEXPANSION 并以!var! 而不是%var% 访问变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2022-11-02
    相关资源
    最近更新 更多