通过批处理文件增加带前导零一个数字 [英] Increment a number with leading zeros by a batch file

查看:113
本文介绍了通过批处理文件增加带前导零一个数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


越来越麻烦递增在前面的零数。

据失败后,0008告诉我文件名已经存在,或者找不到文件
非常奇怪的。

下面是脚本:

关闭@echo复制NUL%TMP%\\ filename.tmpFOR / F令牌= 2 delims = - 。 %%一个在(
   DIR / B%TMP%\\文件名* .TMP^ |排序/ R ^ | FINDSTR / R [0-9]'
)做(
      设置NUM = %%一个
      转到:完成
)仁%TMP%\\ filename.tmp文件名,0001.tmp
退出/ B 0:完成
呼应发现最高的数字是%NUM%
集/ A NUM + = 1
集增量= 0000%NUM%仁%TMP%\\ filename.tmp filename-%增量:〜-4%的.tmpDIR / B%TMP%\\文件名* .TMP|排序/ R

从而简化了问题:

关闭@echo一套数= 008
回声号:%NUM%
集/ A NUM = NUM​​ + 1
回声号:%NUM%回声让我们尝试另一种语法
一套数= 008
回声号:%NUM%
集/ A NUM + = 1
回声号:%NUM%

输出:

人数:008
NUM:1
让我们尝试另一种语法
编号:008
NUM:1


解决方案

另一种方法是添加preceding 1(所以它不是PTED为八进制间$ P $),然后增加,然后修剪掉1。

最大数量由CMD的设置/命令的限制。

 关闭@echo
一套数= 008
回声号:%NUM%
一套数= 1%NUM%
回声号:%NUM%
集/ A NUM = NUM​​ + 1
回声号:%NUM%
集NUM =%NUM:〜1%
回声号:%NUM%
暂停

Getting trouble for incrementing number with zeros in front.

It fail after 0008 telling me filename already exist or file not found. Very odd.

Here is the script:

@echo off

copy nul %tmp%\filename.tmp

for /f "tokens=2 delims=-." %%a in (
   'dir /b "%tmp%\filename*.tmp" ^|sort /r ^|findstr /r [0-9]'
) do (
      set "num=%%a"
      goto :done
)

ren %tmp%\filename.tmp  filename-0001.tmp
exit /b 0

:done
echo the highest number found is %num%
set /a num+=1
set incr=0000%num%

ren %tmp%\filename.tmp  filename-%incr:~-4%.tmp

dir /b "%tmp%\filename*.tmp" |sort /r

Thus simplifying the problem:

@echo off

set "num=008"
echo num: %num%
set /a num=num+1
echo num: %num%

echo let's try another syntax
set "num=008"
echo num: %num%
set /a num+=1
echo num: %num%

output:

num: 008
num: 1
let's try another syntax
num: 008
num: 1

解决方案

Another way is to add a preceding 1 (so that it's not interpreted as an octal), then increment, then trim away the 1.

The largest number is limited by CMD's set /a command.

@echo off
set "num=008"
echo num: %num%
set "num=1%num%"
echo num: %num%
set /a num=num+1
echo num: %num%
set  num=%num:~1%
echo num: %num%
pause

这篇关于通过批处理文件增加带前导零一个数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆