Board logo

标题: (已结)ren a %date%.txt [打印本页]

作者: zxllxz     时间: 2005-10-12 13:49    标题: (已结)ren a %date%.txt

需要对产生的文件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 ]

作者: 无奈何     时间: 2005-10-12 15:14
试试这样 ren a "%date%.txt" 事实上这样,并不一定获得如 “2005-10-12”这样得格式,这与日期格式跟区域设置有关。如果想获得如上所示的格式,请用下面的方法: ren a "%date:~0,10%.txt"

作者: zxllxz     时间: 2005-10-12 15:54
正解!谢谢!

作者: 不得不爱     时间: 2005-10-12 16:27
不知为什么要把%date%.txt用“”影起来才能正确?

作者: JonePeng     时间: 2005-10-12 16:41
Originally posted by qwe1234567 at 2005-10-12 16:27: 不知为什么要把%date%.txt用“”影起来才能正确?
在CMD下,你试试运行 echo %date% 看看结果是什么?作为斑竹,你应该看得出来是什么原因的了,呵呵。

作者: willsort     时间: 2005-10-12 23:04
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联盟的热情,为我们论坛的持久发展做出贡献!

作者: 无奈何     时间: 2005-10-13 00:23
to willsort 我试了一下当代码页: 为437时,不能显示中文,当字体设为“Lucida Console”汉字过长时也不能完整显示,选中汉字时还会出现选中半个汉字的时候。更改代码页后确实有问题。但我想不通使用中文 XP 处理中文文档更改其他代码页的必要性。

作者: willsort     时间: 2005-10-13 00:51
Re 无奈何: 在中文XP命令行环境中,仍然有许多使用437代码页的可能,比如运行16位DOS程序,代码页的自动切换;比如我现在的中文XP环境,使用运行CMD的方式进入命令行,便默认是437代码页,尽管这有些古怪。

作者: chenhui530     时间: 2005-10-13 11:27
在XP中使用 for /f "tokens=1,2,3 delims=- " %a in ('date /t') do ren a %a%b.txt