Board logo

标题: 文件重命名时%time:~0,2%参数问题 [打印本页]

作者: zyz0304360     时间: 2008-1-10 13:37    标题: 文件重命名时%time:~0,2%参数问题
文件在COPY过程中,借用了%time%进行重命名

例:
COPY aaa.dat %date:/=%%time:~0,2%%time:~3,2%aaa.dat
del aaa.dat

aaa.dat备份后,文件名会变成这样的格式200801101312aaa.dat

小时首位数字不是0时(10点~24点)能够正确执行COPY

但是如果小时首位数字是0(0~9),就不能正确执行了

例:
date: 2008/01/10
time: 9:05AM
aaa.dat备份后,文件名会变成这样的格式20080110 905aaa.dat
在文件名中,9的前面不是0,而是一个空格


请问这个问题怎样解决??
我想要的文件名是
200801100905aaa.dat

谢谢

作者: everdos     时间: 2008-1-10 20:54
先将当前时间串存储到一个环境变量中,判断一下第一个字符,如果是空格,就替换为0,用处理过的字符串执行COPY

作者: zyz0304360     时间: 2008-1-10 22:08
谢谢

作者: Climbing     时间: 2008-1-11 10:58
如果你不在乎文件中有一个空格,可以这样:

COPY aaa.dat “%date:/=%%time:~0,2%%time:~3,2%aaa.dat”

或者就是事先判断%time:~0,1%是不是空格,如果是,可以用0%time:~1,1%代替。

作者: zyz0304360     时间: 2008-1-11 12:07
COPY的目标文件名中是不允许有空格的
否则会报错

作者: Climbing     时间: 2008-1-11 13:07
当然可以有空格,加上双引号就可以了。例如:

D:\work\dos>copy a.txt "a b c.txt"
已复制 1 个文件。

作者: zyz0304360     时间: 2008-1-11 22:22
哦,学习了
谢谢

作者: fastslz     时间: 2008-1-12 01:09
楼主,同一话题发2贴,2楼发贴时这帖子早结了,却没注明,也太不应该。。。

作者: zyz0304360     时间: 2008-1-12 09:11
一起研究一下,共同学习嘛

难道你认为问题的解决方法只有一种吗?

还是说只要有了一种方法就不再继续学习了呢?

作者: zyz0304360     时间: 2008-1-12 09:17
现在把“批处理室”的同贴解决方法补上:

set newtime=%date:/=%%time:~0,2%%time:~3,2%
echo %newtime: =0%

感谢解答者: DOS一根葱

发帖时有什么不妥的地方敬请原谅

谢谢大家的帮助

如有其他方法

请发上来
共同学习

作者: zyz0304360     时间: 2008-1-12 09:22
方法1:

set newtime=%date:/=%%time:~0,2%%time:~3,2%
echo %newtime: =0%

感谢解答者: DOS一根葱


方法2:

COPY aaa.dat “%date:/=%%time:~0,2%%time:~3,2%aaa.dat”

感谢解答者:网络独行侠


本人初学DOS
衷心感谢大家的热心帮助

作者: zyz0304360     时间: 2008-1-12 15:35