【问题标题】:Capture variable(s) before : from an output在 : 从输出之前捕获变量
【发布时间】:2015-04-03 19:34:05
【问题描述】:

我正在编写一个批处理来捕获目录中任何文件的 HH:MM:SS。由于小时数并不总是两位数,我不确定使用什么来分别捕获分钟和秒数。

IE:下午 4:15:10

据我所知,我不能使用可变子字符串来获取该信息。有没有办法在变量中获取 : 之前的数据?我需要仅使用批处理来确定文件是否超过 10 分钟(没有 powershell,尽管使用起来会很好)。

这是我目前所拥有的。

    cd c:\users\jthompson\desktop\test
    forfiles /m *.txt /c "cmd /c echo @ftime")
    pause
    for /f %%a in ('forfiles /m *.txt /c "cmd /c echo @ftime"') do call c:\users\jthompson\desktop\test2.bat %%a
    pause

第二个脚本

    echo %1
    set var=%1
    set minutes=%var:~3,2%
    set seconds=%var:~6,2%

【问题讨论】:

    标签: batch-file cmd


    【解决方案1】:

    forfiles 给了我08:25:00 的格式(带前导零;基于 24 小时)。如果你没有,只需用零替换空格。还有一种更好的方法来获取子字符串。

    set var=%1
    echo time is: %var%
    set var=%var: =0"
    echo time is: %var% - space replaced with zero
    REM tokenize the timestring:
    for /f "tokens=1-3 delims=: " %%a in ("%var%") do (
      set hours=%%a
      set minutes=%%b
      set seconds=%%c
    ) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      相关资源
      最近更新 更多