我正在使用以下变量在德语Win7环境中运行Batch脚本:
%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%
这个脚本在10:00到23:59之间运行良好.在0:00到9:59之间我收到一个语法错误(我想因为时间在“:”之前只有一位数)
有人可以帮我弄这个吗?
谢谢!
最佳答案 仍然依赖于语言环境:
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