我有一个批处理脚本会生成一个文件,我想确保每次执行脚本时不会覆盖现有的文件,所以我尝试在文件名上加上时间戳。
目前我的做法是:
set stamp=%DATE:/=-%_%TIME::=-%
但是如果时间在凌晨1点至9点之间,它会返回类似于:
13-06-2012_ instead of a full 13-06-2012_12-39-37.28
我该如何解决这个问题?
我使用的是Windows 7,在命令行窗口中执行echo %date% %time%
命令的输出为(我的“短日期”时钟格式设置为显示3个字母的月份):
03-Sep-12 9:06:21.54
基本上,我想要一个解决方案,无论时钟格式设置为什么,都可以解决问题。
编辑: 由于没有人喜欢阅读标题之后的内容,所以我将明确指出这个问题是关于截断问题的。 我已经找到了一个解决方案。
我已经使用以下时间戳一段时间了,效果很好。
set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%
它生成了一个类似于时间戳的东西: 18-03-2013_13-37-43.26
, 通过替换%TIME%
和%DATE%
中的/
和:
,然后去除空格。实际上是空格导致我的原始问题。