You need to enable JavaScript to run this app. PowerShell如何仅读取.log文件最后两行以获取正确运行状态?
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何仅读取.log文件最后两行以获取正确运行状态?

仅读取日志最后2行的脚本修正方案

核心修改项

  • 用Get-Content -Tail 2定向读取日志末尾2行,替代全文件扫描,从根源避免历史行关键词干扰
  • 修复原脚本的3个缺陷:
    • 函数内误用$_而非传入的$file路径参数
    • 调用函数行末尾多余的]语法错误
    • 正则匹配时未转义.,导致Finished.会误匹配任意后缀字符的问题

完整可运行脚本

function Get-Status($file) {
    # 仅读取最后2行,加容错处理避免空文件/无权限异常
    $tailLines = Get-Content -Path $file -Tail 2 -ErrorAction SilentlyContinue

    if ($tailLines | Select-String -Quiet 'Finished with errors') {
        return "ERROR"
    } elseif ($tailLines | Select-String -Quiet 'Finished with warnings') {
        return "WARNING"
    } elseif ($tailLines | Select-String -Quiet 'Finished\.') {
        return "SUCCESS"
    } else {
        return "FAILED"
    }
}

Get-ChildItem C:\logfolder\*.log | ForEach-Object {
    [PSCustomObject] @{
        Name   = $_.Name
        Date   = $_.LastWriteTime
        Status = Get-Status -file $_.FullName
    }
}

兼容性说明:如果是PowerShell 3.0之前的老旧版本(无-Tail参数),可以改用Get-Content $file | Select-Object -Last 2替代,性能略低但功能一致

内容的提问来源于stack exchange,提问作者djohnjohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 07:15:10