@echo off echo ======================================== echo Navisworks Transport Plugin 日志查看器 echo ======================================== echo. set LOGFILE=%USERPROFILE%\Desktop\NavisworksTransport_Debug.log if not exist "%LOGFILE%" ( echo 日志文件不存在: %LOGFILE% echo 请先运行分层拆分功能生成日志 pause exit /b ) echo 日志文件位置: %LOGFILE% echo 文件大小: for %%A in ("%LOGFILE%") do echo %%~zA 字节 echo. :MENU echo 请选择操作: echo 1. 查看最新50行日志 echo 2. 查看最新100行日志 echo 3. 查看所有ERROR日志 echo 4. 查看最新会话日志 echo 5. 实时监控日志(按Ctrl+C停止) echo 6. 清空日志文件 echo 7. 退出 echo. set /p choice=请输入选择 (1-7): if "%choice%"=="1" goto TAIL50 if "%choice%"=="2" goto TAIL100 if "%choice%"=="3" goto ERRORS if "%choice%"=="4" goto SESSION if "%choice%"=="5" goto MONITOR if "%choice%"=="6" goto CLEAR if "%choice%"=="7" goto EXIT echo 无效选择,请重新输入 goto MENU :TAIL50 echo. echo ========== 最新50行日志 ========== powershell -Command "Get-Content '%LOGFILE%' -Tail 50" echo. pause goto MENU :TAIL100 echo. echo ========== 最新100行日志 ========== powershell -Command "Get-Content '%LOGFILE%' -Tail 100" echo. pause goto MENU :ERRORS echo. echo ========== 所有ERROR日志 ========== findstr /i "ERROR" "%LOGFILE%" echo. pause goto MENU :SESSION echo. echo ========== 最新会话日志 ========== powershell -Command "$content = Get-Content '%LOGFILE%'; $lastSession = ($content | Select-String 'SESSION.*新会话开始' | Select-Object -Last 1).LineNumber - 1; if($lastSession -ge 0) { $content[$lastSession..($content.Length-1)] } else { '没有找到会话标记' }" echo. pause goto MENU :MONITOR echo. echo ========== 实时监控日志 (按Ctrl+C停止) ========== echo 正在监控日志文件变化... powershell -Command "Get-Content '%LOGFILE%' -Wait -Tail 10" goto MENU :CLEAR echo. set /p confirm=确定要清空日志文件吗?(y/N): if /i "%confirm%"=="y" ( echo. > "%LOGFILE%" echo 日志文件已清空 ) else ( echo 操作已取消 ) echo. pause goto MENU :EXIT echo 再见! pause