You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PowerShell脚本仅扫描最新日志文件?

仅扫描最新日志文件的PowerShell脚本修改方案

要让脚本只处理最新的Files*.log日志,只需添加筛选最新文件的逻辑,替换原脚本中直接使用通配符指定路径的部分。以下是修改后的完整脚本:

# 获取最新的Files*.log日志文件
$latestLogFile = Get-ChildItem -Path '\\MyLogFiles\Files*.log' | Sort-Object LastWriteTime -Descending | Select-Object -First 1

# 如果没有找到匹配文件,直接退出避免报错
if (-not $latestLogFile) {
    Write-Host "未找到匹配的日志文件"
    exit
}

$SearchString = 'TOTAL DATA ENTRY'
$outputFilePath = "C:\Reports\Results\Success $(get-date -f yyyy-MM-dd).txt"  

# 仅针对最新日志文件执行扫描
Select-String -Path $latestLogFile.FullName -Pattern $searchString -SimpleMatch |
Set-Content $outputFilePath

$sendMailMessageSplat = @{
    To          = 'Joanne.Bloggs@Mail.com'
    From        = 'Joe.Bloggs@Mail.com'
    Subject     = "Weekly logs - $(get-date -f yyyy-MM-dd).txt"
    Body        = 'See attached'
    Attachments = "C:\Reports\Results\Success $(get-date -f yyyy-MM-dd).txt"
    SmtpServer  = 'mail.server.com'
}
Send-MailMessage @sendMailMessageSplat

关键修改点说明

  • 获取最新文件:通过Get-ChildItem遍历所有匹配的日志,用Sort-Object LastWriteTime -Descending按修改时间倒序排列,再用Select-Object -First 1提取最新的文件。
  • 防错处理:添加if (-not $latestLogFile)判断,避免目录下没有日志文件时后续命令报错。
  • 替换扫描路径:把原脚本中Select-String的-Path参数从通配符路径改成$latestLogFile.FullName,确保只扫描最新文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:27:32