2012-11-06 55 views
2

我的劇本要與此類似:添加計數器值

cd <Directory> 
set counter = 1 
for /r %%f in (*) do (
<Do task> 
echo Task completed for file<counter> >> C:\log 
counter++ 
) 

我無法弄清楚如何使用實際counter值。如果我使用counter%counter%它只是回聲相同的字符串。在這種情況下,我應該如何修改counter行?

回答

4

SET必須與/A一起使用如果要評估數學表達式。您還需要首先通過輸入SETLOCAL ENABLEDELAYEDEXPANSION作爲第一行來啓用延遲擴展。 **FOR**循環內的評估直到最後一次迭代發生才完成。但我修改了批處理文件,以便計數器的值在每次迭代中遞增

SETLOCAL ENABLEDELAYEDEXPANSION 

@echo off 
set /a counter=1 
for /r %%f in (*) do (
echo Task Completed for file !counter! >> c:\log 
set /a counter=!counter!+1 
) 
+0

謝謝。我得到了循環,但不確定'SETLOCAL ENABLEDELAYEDEXPANSION'。當我嘗試它時,它說「訪問被拒絕」 – Jay