我正在使用以下变量在德语Win7环境中运行Batch脚本:
%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%
这个脚本在10:00到23:59之间运行良好。在0:00到9:59之间我收到一个语法错误(我想因为时间只有一个数字在“:”之前)
有人可以帮我这个吗?
THX!
答案 0 :(得分:2)
仍然 locale 依赖:
set "_datetime=%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%"
set "_datetime=%_datetime: =0%"
对于区域设置 独立解决方案(是的,到那时没有_
和-
):
for /F "tokens=2 delims==" %%G in (
'wmic OS get LocalDateTime /value'
) do @for /F "tokens=*" %%x in ("%%G") do (
set "_datetime=%%~x"
)
set "_datetime=%_datetime:~0,14%"
goto :eof
此处for
循环
%%G
检索LocalDateTime
值; %%x
删除返回值中的结尾回车(wmic
行为:每个输出行以0x0D0D0A
结尾,而不是公共0x0D0A
})。见Dave Benham的 WMIC
and FOR /F
: A fix for the trailing <CR>
problem