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

热门内容

联系方式

联系电话:15110196166

QQ:826249686

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

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


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

batch1

点击次数:更新时间:2025-02-26 16:02:49【打印】【关闭】

       @echo off setlocal enabledelayedexpansion   :: 输入与输出路径 set "input_dir=pg" set "output_csv=output.csv"   :: 初始化 CSV 文件 ech
 
     @echo off
setlocal enabledelayedexpansion
 
:: 输入与输出路径
set "input_dir=pg"
set "output_csv=output.csv"
 
:: 初始化 CSV 文件
echo ログファイル,ログ内容,PG,プロセス,開始時間,終了時間,処理所要時間(ms)> "%output_csv%"
 
:: 遍历 pg 文件夹及子文件夹下的所有 .log 文件
for /r "%input_dir%" %%F in (*.log) do (
    set "log_file=%%~nxF"
 
    :: 提取 PG(文件名中包含 msnd 的部分)
    for %%a in (%%~nF) do (
        for %%b in (%%a:_= ) do (
            echo %%b | find /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"
 
        :: 提取プロセス (二次応答受信 行中的 msn= 数字)
        echo !line! | find "二次応答受信" >nul && (
            for /f "tokens=2 delims=[]" %%x in ("!line!") do (
                set "process=%%x"
                set "process=!process:msn=!"
            )
        )
 
      
        echo !line! | find "リクエスト電文受信" >nul && (
            set "start_full_time=!line:~0,23!"
            set "log_content=リクエスト電文受信"
        )
 
        :: 遇到 応答電文送信 -> 记录終了時間并计算时间差
        if defined start_time (
            echo !line! | find "応答電文送信" >nul && (
                set "end_full_time=!line:~0,23!"
                set "log_content=応答電文送信"
 
 
:: 分割日期和时间
for /f "tokens=1,2 delims= " %%a in ("%start_full_time%") do (
    set "start_date=%%a"
    set "start_time=%%b"
)
for /f "tokens=1,2 delims= " %%a in ("%end_full_time%") do (
    set "end_date=%%a"
    set "end_time=%%b"
)
 
call :time_diff "!start_date!" "!start_time!" "!end_date!" "!end_time!"
 
              
 
                :: 写入 CSV 行
                >>"%output_csv%" echo !log_file!,!log_content!,!pg!,!process!,!start_time!,!end_time!,!time_diff_result!
 
                :: 重置时间
                set "start_time="
                set "end_time="
            )
        )
    )
)
 
echo 完成!CSV 文件已生成:%output_csv%
pause
exit /b
 
:time_diff
:: 参数 %1=開始時間 (格式: yyyy/MM/dd HH:mm:ss.SSS)
:: 参数 %2=終了時間 (格式: yyyy/MM/dd HH:mm:ss.SSS)
setlocal enabledelayedexpansion
 
:: 参数检查
if "%~1"=="" exit /b
if "%~2"=="" exit /b
 
:: 分割日期和时间
set "start_date=%~1"
set "start_time_str=%~2"
 
:: 提取时间字段 (使用冒号和点作为分隔符)
for /f "tokens=1-4 delims=:." %%a in ("%start_time_str%") do (
    set /a sh=%%a, sm=%%b, ss=%%c, sms=%%d
)
 
set "end_date=%~3"
set "end_time_str=%~4"
 
for /f "tokens=1-4 delims=:." %%a in ("%end_time_str%") 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

在线客服

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