|
影视狂奔
初级用户
积分 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 |
|
|
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 |
|
|
影视狂奔
初级用户
积分 138
发帖 13
注册 2005-3-3
状态 离线
|
『第
3 楼』:
超级感激chenhui530同志,谢谢
|
|
2005-3-4 00:00 |
|
|
chenhui530
高级用户
积分 772
发帖 273
注册 2004-10-23
状态 离线
|
『第
4 楼』:
没事其实2k以上的系统的for命令很强大了
|
http://www.msfans.net/bbs/ |
|
2005-3-4 00:00 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
5 楼』:
ren temp.txt %date%temp.txt这个命令好象就管用了,有必要用for吗?
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2005-3-7 00:00 |
|
|
影视狂奔
初级用户
积分 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 |
|
|
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 |
|
|
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 |
|
|
JonePeng
金牌会员
D◎$ Fαп
积分 4562
发帖 1883
注册 2004-1-19 来自 广东广州
状态 离线
|
『第
9 楼』:
“%date:~0,10%”原来可以这样用!连Strings和Lmod也省了。哈哈,又学多一招。
|
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
|
|
2005-3-9 00:00 |
|