我想批量生成一个时钟,但是当键入echo %time%
时,也会打印小数秒。
将输出:
15:18:42,15
所以我需要摆脱,15
而不是如何?
答案 0 :(得分:3)
您可以使用替代操作,如set /?
:
echo %time:~0,8%
从第一个字符(从零开始计数)开始需要8个字符
答案 1 :(得分:2)
这是另一种方式:
for /F "delims=,." %%T in ("%TIME%") do @echo/%%T
for /F
loop在时间字符串上迭代一次,然后将第一个,
或.
以及之后的所有内容分开。
无论如何,请注意%TIME%
(以及%DATE%
)返回与语言环境相关的时间(或日期)字符串。
要以与语言环境无关的方式获取当前时间,请使用wmic
command:
wmic OS get LocalDateTime
返回类似于:
的内容20180117151842.150000+000
现在让我们使用for /F
捕获这个并使用sub-string expansion构建我们自己的时间字符串:
@echo off
for /F %%D in ('wmic OS get LocalDateTime') do set "DATETIME=%%D"
echo %DATETIME:~8,2%:%DATETIME:~10,2%:%DATETIME:~12,2%
这总是返回,独立于语言环境和区域设置,如下所示:
15:18:42