2015-05-23 86 views
0

我有一個for循環,我試圖計算每個循環,但是這個循環回聲的零。我如何讓它增加?for循環中的批處理文件計數器

@echo off 
setlocal enableextensions 

set /a count = 0 

for /f "Delims=" %%a in (content\docs.html) do (
    set /a count+=1 
    echo %count% 
) 
+1

看看這篇文章:http://stackoverflow.com/questions/7522740/counting-in-a-for-loop-using-dos-batch-script。問題在於'%count%'在執行之前被評估,因此它總是爲零,請參閱其他文章以獲得解決方案。 – Jaco

+0

[這裏](http://stackoverflow.com/a/30284028/2152082)是一個簡短但令人印象深刻的演示。 – Stephan

回答

0
@echo off 
setlocal enabledelayedexpansion 

set /a count = 0 

for /f "Delims=" %%a in (content\docs.html) do (
    set /a count+=1 
    echo !count! 
) 

通知!,而不是%。這是使用setlocal enabledelayedexpansion的結果。

+0

應該'setlocal enableextensions ENABLEDELAYEDEXPANSION' – JosefZ

+0

如果我使用'setlocal enabledelayedexpansion'Joe。 – Jahwi

+0

雖然_Com​​mand Extensions_在默認情況下被啓用,但是沒有人能夠推測並確信這些是啓用的_in。 – JosefZ