获取cmd中整数变量的格式化输出

时间:2014-02-03 14:41:07

标签: batch-file cmd

我想在名称为file01.txt,file02.txt,...,file10.txt,file11.txt的许多文件中输出一些数据。我有以下脚本:

setlocal enabledelayedexpansion
set /a cnt = 0
for /f %%f in ('dir /b "../in/"') do (
    set /a cnt += 1
    get_data > ../out/file!cnt!.txt
)

但是我得到文件file1.txt,file2.txt。如何格式化并添加所需的零?

2 个答案:

答案 0 :(得分:3)

setlocal enabledelayedexpansion
set /a cnt = 100
for /f %%f in ('dir /b "..\in\"') do (
    set /a cnt += 1
    get_data > ..\out\file!cnt:~-2!.txt
)

批次中的子字符串是从%var:~m,n%获得的,其中,n是可选的; m是从字符串开始的字符数,如果是负数则从结尾开始。 ,n正=返回的最大长度;负=从结尾的字符中的结束位置; missing =在m

之后全部返回

答案 1 :(得分:1)

解决方法:

setlocal enabledelayedexpansion
set /a cnt=0
for /f %%f in ('dir /b "../in/"') do (
    set /a cnt += 1
    set s="../out/file"
    if !cnt! lss 10 (
        set s="../out/file0"
    )
    get_data  > !s!!cnt!.txt
)