- @echo off
- :Begin
- SetLocal
- set WinDump.log_LastSize=0
- start /b WinDump.exe >WinDump.log
-
- :Loop
- :: 设置循环分析 WinDump.log 的间隔时间。单位是秒,请修改 -n 后面的数字。
- >nul Ping 127.1 -n 5
-
- :: 检测 WinDump.log 的大小来判断是否抓到了新数据,没有新数据就继续等待。
- for %%a in (WinDump.log) do (
- if %%~za equ %WinDump.log_LastSize% goto Loop
- set WinDump.log_LastSize=%%~za
- )
-
- :: 用 for 直接读取 WinDump.log,会提示找不到文件。。所以改用“type WinDump.log”。
- for /f "%skip% tokens=2" %%a in ('type WinDump.log') do (
- rem 下面这句不要删了,是用于计算下一次分析 WinDump.log 要略过的行数。
- set /a Skip_Num += 1
- echo %%a
- )
-
- :: WinDump.log 文件会不断增大,文件过大处理起来会比较吃力的吧。
- :: 而且由于在计算 Skip_Num,而批处理能计算的最大数是 2147483647,再加 1 就等于 -2147483648 了。
- :: 所以,最好设定一个行数,当大于这个行数时重启 WinDump.exe 并清空 WinDump.log。
- if %Skip_Num% gtr 100000 goto Restart
- set skip=skip=%Skip_Num%
- goto Loop
-
- :Restart
- EndLocal
- taskkill /f /im WinDump.exe
- goto Begin
复制代码
|