批处理:%time%与环境变量的语法错误

时间:2015-07-06 08:31:24

标签: batch-file

我正在使用以下变量在德语Win7环境中运行Batch脚本:

%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%

这个脚本在10:00到23:59之间运行良好。在0:00到9:59之间我收到一个语法错误(我想因为时间只有一个数字在“:”之前)

有人可以帮我这个吗?

THX!

1 个答案:

答案 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