gpt4 book ai didi

powershell - 使用PowerShell仅从.log文件中提取更新的内容

转载 作者:行者123 更新时间:2023-12-03 00:13:10 24 4
gpt4 key购买 nike

我正在尝试创建一个PowerShell脚本,该脚本将充当日志文件的监视者,并指出日志文件中的更改。

不知何故我无法实现更改的指示,我尝试了以下代码,在这里我尝试在过去15分钟内获取更改,但没有成功:

$File = "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\error.log"
$Action = 'awk ' $0 >= from' from=$(date -u -d -15min "+####<%d-%b-%Y %H:%M:%S o'clock GMT>") error.log'
$global:FileChanged = $false

function Wait-FileChange {
param(
[string]$File,
[string]$Action
)
$FilePath = Split-Path $File -Parent
$FileName = Split-Path $File -Leaf
$ScriptBlock = [scriptblock]::Create($Action)

$Watcher = New-Object IO.FileSystemWatcher $FilePath, $FileName -Property @{
IncludeSubdirectories = $false
EnableRaisingEvents = $true
}
$onChange = Register-ObjectEvent $Watcher Changed -Action {$global:FileChanged = $true}

while ($global:FileChanged -eq $false){
Start-Sleep -Milliseconds 100
}

& $ScriptBlock
Unregister-Event -SubscriptionId $onChange.Id
}

Wait-FileChange -File $File -Action $Action

后来我用以下代码更改了 $Action部分,它将获取最后5行,并且我可以正常使用
$Action = 'Get-Content "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\error.log" | Select-Object -last 5 '

但是我的目标是观察更改并打印所做的更改。
任何人都可以帮我这个忙,任何帮助都是有值(value)的。

最佳答案

But my target is to watch the change and print the changes which are made.



您是否知道 Get-Content cmdlet具有 -Wait开关:
Get-Content $File -Wait

关于powershell - 使用PowerShell仅从.log文件中提取更新的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com