- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- chcp 936
-
- set path=%pathgnu%;%path%
-
- set sour=新建文件夹
- set dest=%~n0
- set exclude=QQ
-
- if exist %dest% rd /s /q %dest%
- if not exist %dest% mkdir %dest%
-
- call :C_timer
-
- set "_cmd_=dir /s /b %sour%\*.txt | sed -r -e "s/^.+[\]//" | sort -u"
- set _cmdsed_=-r -e "/%exclude%/d" -e "/^\S+\s+\S+\s+\S+$/^!d" -e "s/SH/0/" -e "s/SZ/1/" -e "s/\s+/^|/g"
- set _cmdawk_=" { arr[$0]++ ; if ( arr[$0] == 1 ) { print $0 } } "
- for /f "usebackq tokens=* delims=" %%a in (`cmd /c "%_cmd_%"`) do (
- echo %%a
- (
- for /f "usebackq tokens=* delims=" %%b in (`dir /s /b "%sour%\%%a"`) do (
- type "%%~fb"
- ) | sed -r -e $a\
- ) | sed !_cmdsed_! | awk !_cmdawk_! > "%dest%\%%~nxa"
- )
-
- call :C_timer sum
-
- exit/b
-
- rem del %dest%\*.tmp
-
-
- :C_timer
- if not defined _ti_ set _ti_=-1
- set/a _ti_+=1
- set _tb_=%_te_%
- set _te_=%time%
- if %_ti_% EQU 0 (
- set _tb_=%_te_%
- )
- set/a _tdiff_=(9%_te_:~0,2%-9%_tb_:~0,2%)*360000+(9%_te_:~3,2%-9%_tb_:~3,2%)*6000+(9%_te_:~6,2%%_te_:~9,2%-9%_tb_:~6,2%%_tb_:~9,2%)
- set/a _tdiff_=%_tdiff_:-=8640000-%
- set/a _tdiffSum_+=%_tdiff_%
- if "%_ti_%" == "0" (
- (echo,) >>time.txt
- (echo %~nx0 %_ti_% %_te_%) >>time.txt
- ) else (
- (echo %~nx0 %_ti_% %_te_% %_tdiff_:~0,-2%.%_tdiff_:~-2%) >>time.txt
- )
- if %1.==sum. (
- (echo %~nx0 %_tdiffSum_:~0,-2%.%_tdiffSum_:~-2%) >>time.txt
- )
- goto :eof
复制代码
|