只输出变量的第一个字符串

时间:2018-01-17 14:23:33

标签: batch-file

我想批量生成一个时钟,但是当键入echo %time%时,也会打印小数秒。
将输出:

15:18:42,15

所以我需要摆脱,15而不是如何?

2 个答案:

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