[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 went 于 2020-11-25 15:30 编辑

start开始,end结束,相邻多个开始结束时间只会保存一个
  1. @echo off & cd /d "%~dp0"
  2. set "start=15:40:01.098"
  3. set "end=15:45:45.870"
  4. del *_NEW.log >nul 2>nul
  5. for %%i in ("*.log") do call :splitLog "%%i"
  6. pause&exit
  7. :splitLog
  8. set "start_line=0"
  9. for /f "delims=:" %%a in ('findstr /b /r /n /C:"%start%" "%~1"') do set "start_line=%%a"
  10. set /a "start_line-=1"
  11. if not "%start_line%"=="-1" (
  12. (
  13. for /f "usebackq skip=%start_line% tokens=1*" %%i in ("%~1") do (
  14. echo %%i %%j
  15. if "%%i"=="%end%" goto :done
  16. )
  17. ) > "%~n1_NEW.log"
  18. )
  19. :done
  20. echo %~1 done.
  21. echo -------------------------------------
复制代码
保存多个开始结束时间
  1. @echo off & cd /d "%~dp0"
  2. set "start=15:40:01.098"
  3. set "end=15:45:45.870"
  4. del *_NEW.log >nul 2>nul
  5. for %%i in ("*.log") do call :splitLog "%%i"
  6. pause&exit
  7. :splitLog
  8. set "start_line=0"
  9. for /f "delims=:" %%a in ('findstr /b /r /n /C:"%start%" "%~1"') do set "start_line=%%a" & goto :startDone
  10. :startDone
  11. set /a "start_line-=1"
  12. if not "%start_line%"=="-1" (
  13. (
  14. set "enterEnd=0"
  15. for /f "usebackq skip=%start_line% tokens=1*" %%i in ("%~1") do (
  16. if not "%%i"=="%end%" (
  17. call set /a "1/%%enterEnd%%" >nul 2>nul && goto :done || echo %%i %%j
  18. ) else (
  19. echo %%i %%j
  20. if "%%i"=="%end%" set "enterEnd=1"
  21. )
  22. )
  23. ) > "%~n1_NEW.log"
  24. )
  25. :done
  26. echo %~1 done.
  27. echo -------------------------------------
复制代码

TOP

返回列表