按特定符号拆分字符串

时间:2017-05-25 19:53:10

标签: cmd

我需要将字符串(时间)转换为秒

UPPER(hh:mm:ss)

所以我需要以某种方式首先用“:”分割我的字符串以获得三个变量,然后只需转换小时和时间。几分钟到几秒,并将所有三个变量加起来

是否可以使用cmd来分割变量?

1 个答案:

答案 0 :(得分:1)

  • %time%是一个自动变量,以本地化/用户定义的格式返回时间。
  • 小时内可能有前导空格,分钟和秒中可能有前导零。
  • 乘以set / A时会出现问题,因为前导零表示八进制数。
> 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
相关问题