批量scritping非常新.我只是试图执行下面的代码完全混淆.
- @echo off
- set m=100
- set i=0
- FOR /L %%N IN (0,1,%m%)do (
- set /a i=1+%i%
- )
回声%i%
暂停
在这里,我递增i值,直到N达到100.所以,我期望循环结束时i的值为101,但它显示1.任何人都可以解释这背后的原因是什么.
谢谢
您需要延迟扩展:
http://www.robvanderwoude.com/variableexpansion.php
- @echo off
- setlocal enableDelayedExpansion
- set m=100
- set i=0
- FOR /L %%N IN (;;0,%m%;;) do (
- set /a i=1+!i!
- )
- endlocal & set /a i=%i%
- echo %i%