更新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进程),这使得它比使用在脚本更好的在互动提示取消。

+0

非常感谢我一直在寻找这个年龄!我是否会将电子邮件脚本传递给foreach,以便通过电子邮件将每条新行发送给我自己?那么它会发送每一行,因为它是在正确的? 再次感谢! :) – flanelman

+0

你会把命令放在'foreach {...}'块中。在该块内部,$ _'变量包含已添加的完整行。 –

+0

所以我应该发邮件“$ _”?作为包含该行的正文? :) – flanelman