切换 Windows Server 计算机并在批处理文件中生成日期字符串会产生不同的结果

切换 Windows Server 计算机并在批处理文件中生成日期字符串会产生不同的结果

我使用的批处理脚本中有此行。

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

相关内容