2016-12-26 67 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 %%工作表示感謝 –