我需要将字符串(时间)转换为秒
UPPER
(hh:mm:ss)
所以我需要以某种方式首先用“:”分割我的字符串以获得三个变量,然后只需转换小时和时间。几分钟到几秒,并将所有三个变量加起来
是否可以使用cmd来分割变量?
答案 0 :(得分:1)
%time%
是一个自动变量,以本地化/用户定义的格式返回时间。> echo %time%
1:27:02,43
正如您所看到的那样,有一个前导空格并附加了第100秒 您可以使用wmic避免使用ISO格式的localtim来解决一些问题。
> wmic os get LocalDateTime /value|find "="
LocalDateTime=20170526015233.985000+120
从该输出解析日期时间并计算总秒数:
@Echo off
For /f "tokens=2delims==." %%A in (
'wmic os get LocalDateTime /value^|find "="'
) do set DT=%%A
set /A hh=1%DT:~-6,2%-100,mm=1%DT:~-4,2%-100,ss=1%DT:~-2%-100
Echo hh=%hh% mm=%mm% ss=%ss%
Set /A TotalSecs=hh*3600+mm*60+ss
Echo Elapsed seconds since midnight %TotalSecs%
示例输出:
2:08:38 > ElapsedSecs.cmd
hh=2 mm=8 ss=38
Elapsed seconds since midnight 7718