2014-04-14 28 views
1

嗨我正在一個小批處理文件,使我的重命名文件在一個目錄中,到目前爲止循環正在工作,但我想作出0 infront我的反擊結果,因爲這:Windows批處理計數器跟着'0'

setlocal ENABLEDELAYEDEXPANSION 

SET /A counter=0 
for %%A IN (*.txt) DO (
    SET /A counter+=1 
    copy "%%A" "directory/%%A.!counter!.txt" 
    ) 

這完全輸出爲:

 
    tvscriptmonday.txt => TVscriptmonday.1.txt 
    tvscripttuesday.txt => TVscripttuesday.2.txt 

但我想有作爲輸出:

 TVscriptmonday.01.txt 
    TVscripttuesday.02.txt 

我嘗試使用IF命令:

if !counter! <9 set counter=0!counter! 

但不知何故,我無法得到它的工作,任何想法嗎?使用

+0

提取的最後四個字符,使用'如果計數器! lss 9 set counter = 0!counter!' – eis

回答

1

一個小竅門:

setlocal ENABLEDELAYEDEXPANSION 

SET /A counter=100 
for %%A IN (*.txt) DO (
    SET /A counter+=1 
    copy "%%A" "directory/%%A.!counter:~-2!.txt" 
) 

:~-2需要從僅在對最後兩個字符。

擴展:例如,如果你需要一個四號方案,開始從10000計數,並與:~-4在總結

+0

um,如果計數器值爲'1',那麼最後兩個字符會如何幫助?另外,鏈接副本已經提供了答案。 – eis

+0

@eis Stephan的文章爲您提供了最後兩位數字。這是一個很好的解決方案。 – foxidrive

+0

感謝作品:-)整潔的把戲 –