轮播图1
轮播图2
轮播图3
轮播图4
轮播图5

热门内容

联系方式

联系电话:15110196166

QQ:826249686

联系地址:北京市海淀区中关村东路18#财智国际大厦c511

网址:http://www.runqihuamei.com


当前位置:首页 > 开发文档 > 发现Bug > batch3

batch3

点击次数:更新时间:2025-02-27 15:02:41【打印】【关闭】

@echo off setlocal enabledelayedexpansion   :: 输入与输出路径 set "input_dir=pg1" set "output_csv=output3.csv"   :: 初始化 CSV 文件 echo ログファイル,ログ内容
@echo off
setlocal enabledelayedexpansion
 
:: 输入与输出路径
set "input_dir=pg1"
set "output_csv=output3.csv"
 
:: 初始化 CSV 文件
echo ログファイル,ログ内容,PG,プロセス,開始時間,終了時間,処理所要時間(ms)> "%output_csv%"
 
:: 遍历 pg 文件夹及子文件夹下的所有 .log 文件
(for /r "%input_dir%" %%F in (*.log) do (
    set "log_file=%%~nxF"
 
    :: 提取 PG(文件名包含 msnd)
    set "pg="
    for %%b in (%%~nF) do (
        echo %%b | findstr /i "msnd" >nul && set "pg=%%b"
    )
 
    set "process="
    set "start_time="
    set "end_time="
    set "log_content="
    
    :: 读取日志文件并处理内容
    for /f "usebackq tokens=* delims=" %%L in ("%%F") do (
        set "line=%%L"
 
        if "!line!"=="二次応答受信" (
            for /f "tokens=2 delims=[]" %%x in ("!line!") do (
                set "process=%%x"
                set "process=!process:msn=!"
            )
        )
 
        if "!line!"=="リクエスト電文受信" (
            set "start_full_time=!line:~0,23!"
            set "log_content=リクエスト電文受信"
        )
 
        if defined start_time if "!line!"=="応答電文送信" (
            set "end_full_time=!line:~0,23!"
            set "log_content=応答電文送信"
 
            :: 计算时间差
            call :time_diff "!start_full_time!" "!end_full_time!"
 
            :: 缓存 CSV 内容
            set "csv_line=!log_file!,!log_content!,!pg!,!process!,!start_full_time!,!end_full_time!,!time_diff_result!"
            echo !csv_line!
        )
    )
)) >> "%output_csv%"
 
echo 完成!CSV 文件已生成:%output_csv%
pause
exit /b
 
:: 时间差计算函数
:time_diff
setlocal enabledelayedexpansion
for /f "tokens=1-4 delims=:." %%a in ("%~2") do (
    set /a sh=%%a, sm=%%b, ss=%%c, sms=%%d
)
for /f "tokens=1-4 delims=:." %%a in ("%~3") do (
    set /a eh=%%a, em=%%b, es=%%c, ems=%%d
)
set /a start_ms=(sh*3600000)+(sm*60000)+(ss*1000)+sms
set /a end_ms=(eh*3600000)+(em*60000)+(es*1000)+ems
set /a diff=end_ms - start_ms
endlocal & set "time_diff_result=%diff%"
exit /b
 

地址:北京市中关村东路18#财智国际大厦c511  联系电话:010-86398936  邮箱:857749491@qq.com

北京润启华美信息系统有限公司始终致力于IT信息技术的研发与应用

powerd by 润启华美

客服

工作时间

周一至周日

8:00 - 18:00

在线客服

点击这里给我发消息 客服咨询