中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-28 18:04
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » ((((((( 超 急 求 助 )))))) win2000server版无法实现 查看 631 回复 8
楼 主 ((((((( 超 急 求 助 )))))) win2000server版无法实现 发表于 2005-03-04 00:00 ·  中国 广东 广州 移动
初级用户
积分 138
发帖 13
注册 2005-03-03 00:00
21年会员
UID 36693
性别 男
状态 离线
关于批处理自动改名的问题?
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
2 发表于 2005-03-04 00:00 ·  中国 湖南 长沙 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
for /f "tokens=1" %%a in ('date /t' do ren temp.txt %%atemp.txt
http://www.msfans.net/bbs/
3 发表于 2005-03-04 00:00 ·  中国 广东 广州 移动
初级用户
积分 138
发帖 13
注册 2005-03-03 00:00
21年会员
UID 36693
性别 男
状态 离线
超级感激chenhui530同志,谢谢
4 发表于 2005-03-04 00:00 ·  中国 湖南 长沙 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
没事其实2k以上的系统的for命令很强大了
http://www.msfans.net/bbs/
5 发表于 2005-03-07 00:00 ·  中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
ren temp.txt %date%temp.txt这个命令好象就管用了,有必要用for吗?
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
6 发表于 2005-03-07 00:00 ·  中国 广东 广州 移动
初级用户
积分 138
发帖 13
注册 2005-03-03 00:00
21年会员
UID 36693
性别 男
状态 离线
以下是引用Climbing在2005-3-7 2:56:54的发言:
ren temp.txt %date%temp.txt
这个命令好象就管用了,有必要用for吗?

因在WIN2000SERVER无效,故需要用到FOR
7 发表于 2005-03-07 00:00 ·  中国 广东 广州 荔湾区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
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!≡≡≡≡====----
8 发表于 2005-03-09 00:00 ·  中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
我是用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= > temp.bat
chcp 936
call temp.bat
del temp.bat
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
9 发表于 2005-03-09 00:00 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
“%date:~0,10%”原来可以这样用!连Strings和Lmod也省了。哈哈,又学多一招。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
论坛跳转: