中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 12:43
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结)ren a %date%.txt 查看 1,760 回复 8
楼 主 (已结)ren a %date%.txt 发表于 2005-10-12 13:49 ·  中国 上海 电信
新手上路
积分 4
发帖 2
注册 2005-10-12 13:46
20年会员
UID 43392
性别 男
状态 离线
需要对产生的文件a 进行改名ren a %date%.txt
不能实现,有什么语法错误,目的是对每天产生的a改名为当天时间命名的文本文件.

---------- Edited by willsort ----------
解决方案如下:

ren a "%date%.txt" ——2楼

此种方法产生的文件名会包含星期计数,想去掉它取决于你系统中%date%的日期格式,如果是类似 “2005-10-15 星期六”,可以使用

ren a "%date:~0,10%.txt" ——2楼

如果是类似 “Sat 2005-10-15” 的格式,则需要使用

ren a "%date:~-10%.txt"

如果是其它的日期格式还可能需要另作处理。

这仅仅是NT系列平台下的NTVDM环境(DOS窗口)中才能使用的方法,在MSDOS6.22/7.10/Win9x下需要使用另外的方案,请搜索本论坛。
---------- Edited by willsort ----------


[ Last edited by willsort on 2005-10-15 at 18:27 ]
2 发表于 2005-10-12 15:14 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
试试这样 ren a "%date%.txt"

事实上这样,并不一定获得如 “2005-10-12”这样得格式,这与日期格式跟区域设置有关。如果想获得如上所示的格式,请用下面的方法:

ren a "%date:~0,10%.txt"
3 发表于 2005-10-12 15:54 ·  中国 上海 电信
新手上路
积分 4
发帖 2
注册 2005-10-12 13:46
20年会员
UID 43392
性别 男
状态 离线
正解!谢谢!
4 发表于 2005-10-12 16:27 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
5 发表于 2005-10-12 16:41 ·  中国 广东 广州 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
Originally posted by qwe1234567 at 2005-10-12 16:27:
不知为什么要把%date%.txt用“”影起来才能正确?


在CMD下,你试试运行 echo %date% 看看结果是什么?作为斑竹,你应该看得出来是什么原因的了,呵呵。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
6 发表于 2005-10-12 23:04 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re 无奈何:

%date:~0,10%v 仍然无法避免因为日期格式或者代码页不同所造成的不兼容状况。而且在XP的环境下,某些日期变量格式的变化出人意料。比如下面的命令行截取。其中的“星期三”在窗口字体为“点阵字体”时会显示为“???”,为 “Lucida Console” 时正常显示。


C:\Documents and Settings\wil>chcp 437
Active code page: 437

C:\Documents and Settings\wil>echo %date%
星期三 2005-10-12


Re qwe1234567 :

作为论坛版主,积极热情是第一要素,管理经验排是第二要素,技术水平只能是第三要素。qwe1234567 兄这几天来的发帖率已经充分证实了第一要素的具备,第二要素我们会拭目以待,第三要素则可能需要一段时间的培养和积累。

在此,我希望 qwe1234567 兄能继续保持这种对DOS和中国DOS联盟的热情,为我们论坛的持久发展做出贡献!
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
7 发表于 2005-10-13 00:23 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
to willsort
我试了一下当代码页: 为437时,不能显示中文,当字体设为“Lucida Console”汉字过长时也不能完整显示,选中汉字时还会出现选中半个汉字的时候。更改代码页后确实有问题。但我想不通使用中文 XP 处理中文文档更改其他代码页的必要性。
8 发表于 2005-10-13 00:51 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re 无奈何:

在中文XP命令行环境中,仍然有许多使用437代码页的可能,比如运行16位DOS程序,代码页的自动切换;比如我现在的中文XP环境,使用运行CMD的方式进入命令行,便默认是437代码页,尽管这有些古怪。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
9 发表于 2005-10-13 11:27 ·  中国 重庆 巴南区 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
在XP中使用
for /f "tokens=1,2,3 delims=- " %a in ('date /t') do ren a %a%b.txt
http://www.msfans.net/bbs/
论坛跳转: