2016-12-26 51 views
0

我有这样的代码:在循环使用set /一个错误

setlocal enableDelayedExpansion 
set count=0 
set letter=a,b,c 
for %%a in (%letter%) do (
set /a "count+=1" 
echo %count% 
) 
pause 

输出是:

0 
0 
0 

我想要的输出将是:

1 
2 
3 

我也试过没有EnableDelayedExpansion,但我没有运气。我做错了什么?

+2

可能重复[为什么环境变量不在FOR循环内更新?](http://stackoverflow.com/questions/40335392/why-are-environment-variables-not-updating-within-for-loop) – aschipfl

回答

2

需要

echo !count! 

与delayedexpansion

call echo %%count%% 

%count%总是返回的count的价值,因为它站在遇到块(parenthesised一系列声明)时。

+0

调用echo %% count %%工作表示感谢 –