【发布时间】:2013-12-04 05:05:48
【问题描述】:
我有一个由批处理脚本在运行时创建的文本文件。如何在文本文件名中附加当前日期,如instancename_4/12/2013?
提前致谢
【问题讨论】:
标签: batch-file filenames
我有一个由批处理脚本在运行时创建的文本文件。如何在文本文件名中附加当前日期,如instancename_4/12/2013?
提前致谢
【问题讨论】:
标签: batch-file filenames
使用以下
set filea=MyBigFile%date:~10%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%.txt
【讨论】:
试试这个:
echo off
set v = instancename_%date%.log
echo some log >> %v%
【讨论】:
set filename=instancename_%date:/=_%.txt
应该将文件名设置为接近您的规范。
文件名中不能有/。 %date:/=_% 将 / 转换为 _。
由于您的日期格式似乎有一个被抑制的前导零,因此尝试使用子字符串将无法正常工作。
我们真的需要准确地知道变量%date% 在您的机器上是如何出现的。它可能有日期名称,有些人拼写出月份名称而不是数字。有些人在月份也抑制了前导零 - 我相信也有可能让日期或月份的前导空格为 (day, month)
也可以使用
for /f "tokens=1,2,3delims=/" %%a in (%date%) do set filename=instancename_%%a_%%b_%%c.txt
同样,_ 被替换为 /。
这种格式的强大之处在于,您还可以颠倒 %%a..%%c 的顺序,以 YY_MM_DD 格式为您提供更便于排序的日期。 YMMV。
【讨论】: