大家好,
本人才接触bat批处理 问的问题很基础 大家不要笑。。。
请教大家一个问题,也许是关于变量延迟定义的(不太清楚)
在如下的代码中,A和Count是什么关系? 为什么“SET /A Count+=3” 在 “Echo A is now %%A” 之前 ,结果却显示%%A与Count的值是一样的?- @Echo off
- setlocal enabledelayedexpansion
- SET /A Count=1
- for /L %%A in (1, 3, 73) do (
- Echo A is now !Count!
- SET /A Count+=3
- Echo A is now %%A
- )
- ping 127.1 -n 6 >nul
复制代码 如果把这两句调换,得到的结果还是一样的:- @Echo off
- setlocal enabledelayedexpansion
- SET /A Count=1
- for /L %%A in (1, 3, 73) do (
- Echo A is now !Count!
- Echo A is now %%A
- SET /A Count+=3
- )
- ping 127.1 -n 6 >nul
复制代码 但是如果把这个自加放到循环体的第一句,则会即时计算:- @Echo off
- setlocal enabledelayedexpansion
- SET /A Count=1
- for /L %%A in (1, 3, 73) do (
- SET /A Count+=3
- Echo A is now !Count!
- Echo A is now %%A
- )
- ping 127.1 -n 6 >nul
复制代码 求大神指点! SET /A Count+=3 到底是不是即时计算?还是有变量延迟? 谢谢 |