更新PowerShell解析日志文件
问题描述:
我有一个脚本运行,它镜像两个目录并更新有关两个目录之间发生的事情的日志文件。我想解析这个日志文件以获取更新(当脚本正在运行时),并且我希望这些日志文件向我发送更改内容的电子邮件,例如通知。另外 - 如果可能的话,我不想多次通知同一位信息?更新PowerShell解析日志文件
我对我怎么会去通过一些命令列出的在线阅读后做这个不确定。
Tldr; 真的所有我在找做的是,当行被添加到日志文件,解析该文件以获得更新的路线,没有得到任何其他线路。
并非所有强大的PowerShell的所以任何帮助将不胜感激。
答
你可以有PowerShell的获取每个新行,因为它由-Wait
参数传递给Get-Content
用武之地。然后,您可以将其传递到Foreach-Object
脚本块中以执行您所需的任何操作。
Get-Content $logfile -Tail 0 -Wait | foreach {
"Another line was added: " + $_
}
的-Tail N
参数会导致Get-Content
只得到最后N行;在这种情况下为零。这会导致它跳过文件中的所有内容,并且只会将新添加的行传递到脚本块。
注:此cmdlet将继续运行,直到您按Ctrl + C(或以其他方式阻止其PowerShell进程),这使得它比使用在脚本更好的在互动提示取消。
非常感谢我一直在寻找这个年龄!我是否会将电子邮件脚本传递给foreach,以便通过电子邮件将每条新行发送给我自己?那么它会发送每一行,因为它是在正确的? 再次感谢! :) – flanelman
你会把命令放在'foreach {...}'块中。在该块内部,$ _'变量包含已添加的完整行。 –
所以我应该发邮件“$ _”?作为包含该行的正文? :) – flanelman