在输出之前捕获变量:来自输出

时间:2015-04-03 19:34:05

标签: batch-file cmd

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

IE:4:15:10 PM

据我了解,我无法使用变量子串来获取该信息。有没有办法在变量之前获取数据?我需要确定一个文件是否超过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%

1 个答案:

答案 0 :(得分:0)

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
)