for /F "tokens=1-4 delims=/ " %%i in ('date /t') do (
set Day=%%k
set Month=%%j
set Year=%%l
set DATE=%%k/%%j/%%l)
我试图在批处理脚本中将日期放入上述变量中,但目前日期显示为
2011/04/
对于如何解决这个问题,有任何的建议吗?
最佳答案
您没有得到预期的结果,因为 %DATE%
使用“短日期格式”的 Windows 设置返回当前日期。此设置是完全(无限)可定制的。
一位用户可以将其系统配置为将短日期显示为 Fri040811;而另一个用户(即使在同一系统中)可能会选择 08/04/2011。对于 BAT 程序员来说,这是一场彻头彻尾的噩梦。
一种可能的解决方案是使用 WMIC , 反而。 WMIC 是 WMI 的 WMI 命令行界面。 WMI Windows Management Instrumentation 是 http://en.wikipedia.org/wiki/Windows_Management_Instrumentation
WMIC Path Win32_LocalTime Get Day,Hour,Minute,Month,Second,Year /Format:table
以方便的方式返回日期以直接使用
FOR
解析它.完成解析并将各个部分放在一起
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
SET /A TODAY=%%F*10000+%%D*100+%%A
)
关于variables - 批处理脚本日期到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5594121/