中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件重命名时%time:~0,2%参数问题
作者:
标题: 文件重命名时%time:~0,2%参数问题 上一主题 | 下一主题
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『楼 主』:  文件重命名时%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

谢谢



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-10 13:37
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
everdos
初级用户





积分 52
发帖 21
注册 2008-1-1
状态 离线
『第 2 楼』:  

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

2008-1-10 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 3 楼』:  

谢谢



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-10 22:08
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

如果你不在乎文件中有一个空格,可以这样:

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

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



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-1-11 10:58
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 5 楼』:  

COPY的目标文件名中是不允许有空格的
否则会报错



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-11 12:07
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

当然可以有空格,加上双引号就可以了。例如:

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



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-1-11 13:07
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 7 楼』:  

哦,学习了
谢谢



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-11 22:22
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  

楼主,同一话题发2贴,2楼发贴时这帖子早结了,却没注明,也太不应该。。。



第一高手    第二高手

2008-1-12 01:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 9 楼』:  

一起研究一下,共同学习嘛

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

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



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-12 09:11
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 10 楼』:  

现在把“批处理室”的同贴解决方法补上:

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

感谢解答者: DOS一根葱
        
发帖时有什么不妥的地方敬请原谅

谢谢大家的帮助

如有其他方法

请发上来
共同学习



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-12 09:17
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 11 楼』:  

方法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
衷心感谢大家的热心帮助



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-12 09:22
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 12 楼』:  

http://www.cn-dos.net/forum/view ... 6996&sid=vWZahh

我总结的贴子



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-12 15:35
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: