写一个bat脚本,逐行读取,判断第一个空格前的时间与上一行的时间是否差两秒,如果差两秒计数加一,最终输出计数
时间: 2024-05-12 14:17:15 浏览: 71
应该这样写:
```
@echo off
set count=0
set prev_time=00:00:00.000
for /f "usebackq delims=" %%i in ("%1") do (
set curr_time=%%i
for /f "tokens=1" %%j in ("%%i") do (
set curr_time=%%j
goto :compare_times
)
)
:compare_times
set /a delay=0
for /f "tokens=1,2,3 delims=:." %%a in ("%prev_time%") do (
set /a prev_h=%%a
set /a prev_m=%%b
set /a prev_s=%%c
)
for /f "tokens=1,2,3 delims=:." %%a in ("%curr_time%") do (
set /a curr_h=%%a
set /a curr_m=%%b
set /a curr_s=%%c
)
set /a delay=(curr_h-prev_h)*3600+(curr_m-prev_m)*60+(curr_s-prev_s)
if %delay% EQU 2 set /a count+=1
set prev_time=%curr_time%
goto :eof
:eof
echo %count%
```
这个脚本会逐行读取传入的文件,并检查每一行的时间戳与前一行的时间戳是否相差两秒。如果相差两秒,则计数器加一。最后输出计数器的结果。注意,此脚本默认第一行的时间戳为 00:00:00.000 。如果需要修改,可以在脚本的开头进行修改。
阅读全文