Board logo

标题: [日期时间] [已解决]以当前时间为文件名创建文件的批处理10点以前时如何在文件名开头加0? [打印本页]

作者: tamicer    时间: 2011-9-20 10:05     标题: [已解决]以当前时间为文件名创建文件的批处理10点以前时如何在文件名开头加0?

已知
  1. echo.>%time:~0,2%%time:~3,2%%time:~6,2%.txt
复制代码
可在10点以后可创建6位数为名的txt文件,而10点以前创建的是5位数为名的文件,
现要在10点以前创建的文件名前手动加0,补齐6位数
  1. echo.>0%time:~0,2%%time:~3,2%%time:~6,2%.txt
复制代码
不能实现,请教高人指点该如何写?谢谢!
作者: weichenxiehou    时间: 2011-9-20 10:51

  1. set/a a=%time:~0,2%,b=a+100
  2. cd.>%b:~-2%%time:~3,2%%time:~6,2%.txt
复制代码

作者: tamicer    时间: 2011-9-20 11:31

谢谢楼上指点迷津,还想请教一下,100是不是与时间相加唯一有意义的数字,应用中会不会遇到时间变量加其它数字呢?
作者: hankerer    时间: 2011-9-20 12:20

  1. >0%time:~0,2%%time:~3,2%%time:~6,2%.txt echo.
复制代码

作者: weichenxiehou    时间: 2011-9-20 12:47

回复 3# tamicer
如果懂原理的话,这个问题就可以自己回答了哦……这个数字只要比小时数大一个量级且不能超过批处理能计算的最大值应该就行了。
作者: tamicer    时间: 2011-9-20 15:31

终于理解了,经过set/a a=%time:~0,2%,时间数值已经变为普通数值了,所以可进行正常数值运算,再次感谢楼上!
作者: cjiabing    时间: 2011-9-20 20:16

本帖最后由 cjiabing 于 2011-9-20 20:26 编辑

使用条件判断语句IF可以解决:
  1. if /i "%time:~1,1%"==":" (echo.>0%time:~0,1%%time:~2,2%%time:~5,2%.txt) else (echo.>%time:~0,2%%time:~3,2%%time:~6,2%.txt)
复制代码

根据你的代码修改,没测试过。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2