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


  Quote:
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” 时正常显示。

  Quote:
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