Board logo

标题: 如何用日期做文件名 [打印本页]

作者: cao2008     时间: 2004-3-3 00:00    标题: 如何用日期做文件名

我想用日期做文件名,比如:20040302.txt,如何实现?
作者: misc001     时间: 2004-3-18 00:00
以下是一个Windows 2000 (简体中文) CMD 下的例子

SET filename=%date%
SET filename=%filename:~9%.txt
ECHO Hello > %filename%

备注:变量%DATE%给出当前日期,:~9%表示从第9个字符开始取值,不同版本可能起示位置有差异。
作者: Climbing     时间: 2004-3-18 00:00
楼上的方法可能确实可行,但我试了一下,运行不太正常,文件名最后变成了"8.txt"。而且%date%隐藏环境变量恐怕只是在2000以后才有的,2000以前的系统恐怕不支持。

我自己的实际应用中,我使用Horst(也就是WBAT的作者)写的lmod命令。由于不同的系统日期显示方式和显示格式不同(跟区域设置中的日期格式设置也有关),我们先说2000/xp/2003系统下的写法(区域设置中的日期格式设置为yyyy-mm-dd,假设%temp%目录可写):
lmod >nul
date/t | lmod /S- set filename=[$1][$2][$3].txt > %temp%\temp.bat
call %temp%\temp.bat
del %temp%\temp.bat
执行完成后,会将以日期为名的一个txt文件名保存到filename环境变量中。

再以纯DOS或者98的DOS为例(默认的日期格式为:MM-dd-yyyy):
date/t | lmod /S- set filename=[$!][$!-2][$!-1].txt > %temp%\temp.bat
call %temp%\temp.bat
del %temp%\temp.bat
结果同上。