中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » ((((((( 超 急 求 助 )))))) win2000server版无法实现
作者:
标题: ((((((( 超 急 求 助 )))))) win2000server版无法实现 上一主题 | 下一主题
影视狂奔
初级用户




积分 138
发帖 13
注册 2005-3-3
状态 离线
『楼 主』:  ((((((( 超 急 求 助 )))))) win2000server版无法实现

关于批处理自动改名的问题?
win2000svser的dos状态下执行a.bat批命令文件自动将 "temp.txt" 原文件名改成 当前日期+temp.txt(即名为:"2005-03-04temp.txt" )的文件,注意当前日期为系统当天的自动日期,求教该a.bat的批命令如何编写,先谢谢各位大侠指点!
下面的语句在win2000可行,可惜在server下就不行了,因%date%返回是"星期五 2005-03-04",因有空格提示非法,呜....如何截取和解决,急急急.....
echo ren test.txt %date%test.txt >temp.bat
[em06][em06][em06][em06][em06]

2005-3-4 00:00
查看资料  发送邮件  发短消息 网志  OICQ (4861681)  编辑帖子  回复  引用回复
chenhui530
高级用户





积分 772
发帖 273
注册 2004-10-23
状态 离线
『第 2 楼』:  

for /f "tokens=1" %%a in ('date /t') do ren temp.txt %%atemp.txt



http://www.msfans.net/bbs/
2005-3-4 00:00
查看资料  发送邮件  发短消息 网志  OICQ (77740821)  编辑帖子  回复  引用回复
影视狂奔
初级用户




积分 138
发帖 13
注册 2005-3-3
状态 离线
『第 3 楼』:  

超级感激chenhui530同志,谢谢

2005-3-4 00:00
查看资料  发送邮件  发短消息 网志  OICQ (4861681)  编辑帖子  回复  引用回复
chenhui530
高级用户





积分 772
发帖 273
注册 2004-10-23
状态 离线
『第 4 楼』:  

没事其实2k以上的系统的for命令很强大了



http://www.msfans.net/bbs/
2005-3-4 00:00
查看资料  发送邮件  发短消息 网志  OICQ (77740821)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


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

ren temp.txt %date%temp.txt这个命令好象就管用了,有必要用for吗?



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




积分 138
发帖 13
注册 2005-3-3
状态 离线
『第 6 楼』:  



  Quote:
以下是引用Climbing在2005-3-7 2:56:54的发言:
ren temp.txt %date%temp.txt
这个命令好象就管用了,有必要用for吗?

因在WIN2000SERVER无效,故需要用到FOR

[此贴子已经被作者于2005-3-7 11:03:33编辑过]




2005-3-7 00:00
查看资料  发送邮件  发短消息 网志  OICQ (4861681)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 7 楼』:  

Climbing大哥:ren temp.txt %date%temp.txt看起来好像没有语法错误,但在Win2000下%date%的值包含日期以及星期,而且日期和星期之间用空格隔开,于是命令就变成ren temp.txt 2005-03-07 星期一temp.txt,由于多了一个空格,所以提示语法不正确。正确的输入应该要将ren的第二个参数用双引号括起来,即ren temp.txt "%date%temp.txt"。可惜此命令的效果多出了“星期几”,不符合楼主的要求。本来我想到用Strings来解决。但是Win2000里Strings命令不能将输出的字符串存入变量中。chenhui的for命令用得真妙!强啊!!



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-3-7 00:00
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


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

我是用Windows 2003系统试验的%date%变量,我觉得2003下应该跟2000没有区别,没想到真的有区别(微软的系统总是这么不兼容)。我的2000下的%date%变量内容为:
C:\>echo %date%
星期三 2005-03-09针对这种情况,可以这样写:ren temp.txt %date:~-10%temp.txt如果星期在后面,可以写成:ren temp.txt %date:~0,10%temp.txt当然,chenhui的for命令确实用的很不错,也是值得推荐的。strings确实不能在NT环境下直接设置变量,不过可以用lmod来实现。
strings right %date%, 10 | lmod /L1 set thedate=[] > temp.bat
call temp.bat
del temp.bat或者不用strings,直接用lmod:
date /t | lmod /L1 set thedate=[$1] > temp.bat
chcp 936
call temp.bat
del temp.bat



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

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 9 楼』:  

“%date:~0,10%”原来可以这样用!连Strings和Lmod也省了。哈哈,又学多一招。



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-3-9 00:00
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复

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


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



论坛跳转: