我使用的批处理脚本中有此行。
set ldt=%Date:~8,2%%Date:~3,2%%Date:~0,2%_%Time:~0,2%%Time:~3,2%%Time:~6,2%
自从我编写它以来,它一直运行良好并生成如下文本。
170420_92444
但是现在在新机器(仍然是 Windows Server 2008 R2)上它会生成类似的内容。
9/ 0We_184000
我不太明白为什么会发生这种变化。
答案1
不要使用依赖于语言环境/用户设置的 %date% %time% 变量。请改用 wmic:
@Echo off
for /f "tokens=1-3 delims=.+-" %%A in (
'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set ldt=%_DT:~2,6%_%_DT:~8,6%
set ldt
示例输出。
ldt=170420_121402