回复 2# 娜美
- @echo off
- chcp 65001 >nul
- set /a _cc=2
- set /a "Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12"
- for /f "delims=" %%x in ('dir /b /a-d *.txt') do (
- setlocal enabledelayedexpansion
- for /f "useback tokens=1-9* delims=,. " %%a in ("%%x") do (
- if not defined _"%%x" (
- set _mm=0!%%b!
- set _dd=0%%c
- if "%%h" equ "1" (
- set _tt=%%d-!_mm:~-2!-!_dd:~-2! %%e
- set _str1=%%j
- ) else if "%%h" equ "2" (
- if defined _tt (
- set mark=1
- )
- ) else if "%%h" equ "3" (
- if defined mark (
- set "_str2=%%j"
- if "!_str1!" equ "!_str2!" (
- call :1 "!_tt!" "%%d-!_mm:~-2!-!_dd:~-2! %%e"
- if !DiffSecs! leq !_cc! (
- echo %%x
- set _"%%x"=1
- )
- )
- ) else (
- set _tt=
- set mark=
- )
- ) else (
- set _tt=
- set mark=
- )
- )
- )
- endlocal
- )
- pause
- exit
-
- :1
- set StartTime=%~1
- set EndTime=%~2
- set StartTime=%StartTime:-= %
- set StartTime=%StartTime::= %
- set EndTime=%EndTime:-= %
- set EndTime=%EndTime::= %
- call :DateToSecs %StartTime% StartSecs
- call :DateToSecs %EndTime% EndSecs
- set /a DiffSecs=EndSecs-StartSecs
- set DiffSecs=%DiffSecs:-=%
- goto :eof
-
- :DateToSecs %yy% %mm% %dd% %hh% %nn% %ss% secs
- setlocal ENABLEEXTENSIONS
- set yy=%1&set mm=%2&set dd=%3&set hh=%4&set nn=%5&set ss=%6
- if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
- set /a dd=100%dd%%%100,mm=100%mm%%%100
- set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
- set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
- if 1%hh% LSS 20 set hh=0%hh%
- if {%nn:~2,1%} EQU {p} if "%hh%" NEQ "12" set hh=1%hh%&set/a hh-=88
- if {%nn:~2,1%} EQU {a} if "%hh%" EQU "12" set hh=00
- if {%nn:~2,1%} GEQ {a} set nn=%nn:~0,2%
- set /a hh=100%hh%%%100,nn=100%nn%%%100,ss=100%ss%%%100
- set /a j=j*86400+hh*3600+nn*60+ss
- endlocal&set %7=%j%&goto :EOF
复制代码
|