Windows Batch计数器,后跟' 0'

时间:2014-04-14 11:48:08

标签: windows loops batch-file counter

您好我正在处理一个小批处理文件,使我在目录中重命名文件,到目前为止循环正在工作但我想在我的计数器结果前面0:{/ p >

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!

但不知怎的,我无法让它发挥作用,任何人的想法?

1 个答案:

答案 0 :(得分: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

提取最后四个字符