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

热门内容

联系方式

联系电话:15110196166

QQ:826249686

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

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


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

batch2

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

@echo off setlocal enabledelayedexpansion :: 输入与输出路径 set "input_dir=pg" set "output_csv=output.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

在线客服

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