使用windows powershell从实时(更新)日志文件筛选字符串

使用windows powershell从实时(更新)日志文件筛选字符串,windows,powershell,logging,filter,monitor,Windows,Powershell,Logging,Filter,Monitor,我有一台计算机,它在串行端口上记录来自设备的事件。Putty正在将它们记录到一个文件中 我曾经让它在Linux机器上运行。基本上是tail-f event.log>>script.sh 这就是*nix脚本 !/bin/bash outfile=sras_pages.log 而read-r行 做 IFS=''读取-ra拆分$outfile 基本上,我只想将包含上述两个字符串的字符位置9-29转发到由分页终端监控的文件 Linux选项现在不见了,我只能使用windows。我只是刚刚了解了window

我有一台计算机,它在串行端口上记录来自设备的事件。Putty正在将它们记录到一个文件中

我曾经让它在Linux机器上运行。基本上是tail-f event.log>>script.sh

这就是*nix脚本

!/bin/bash outfile=sras_pages.log 而read-r行 做 IFS=''读取-ra拆分$outfile 基本上,我只想将包含上述两个字符串的字符位置9-29转发到由分页终端监控的文件

Linux选项现在不见了,我只能使用windows。我只是刚刚了解了windows PowerShell,并一直试图通过我在网上找到的示例来了解它

我从这个开始:

获取内容-路径C:\temp\SRAS\alarm.log-尾部1-等待 这给了我linux的tail-f功能。问题是我不知道如何将此命令的输出馈送到另一个PowerShell脚本中

然后我拼凑起来

$p=@AC/BATT_压水堆,通信故障 获取内容-路径C:\temp\SRAS\alarm.log-tail 1-Wait |选择字符串-模式$p-SimpleMatch |设置内容C:\temp\SRAS\SRAS_pages.log 这是可行的,除了文件sras_pages.log仅在powershell中I Ctrl+C停止运行后写入

我需要的是监视一个定期更新的日志文件,以及任何与字符串匹配的事件,这些事件在发生时将附加到一个单独的文件中

我对powershell了解不够,无法完成此操作,正在寻求帮助

非常感谢。

设置内容会覆盖文件的内容,因此它会等待所有内容,然后再刷新并将所有内容写入文件。将内容附加到文件,这更适合于随时间继续写入的脚本,但与设置内容一样,它会锁定文件并在脚本完成或取消时刷新

然而,Out文件也支持追加,并且它不会锁定文件。因此,您可以尝试将“设置内容”命令替换为:

Out-File -FilePath "C:\temp\SRAS\sras_pages.log" -Append

非常感谢你。。。经过昨晚的修补,我也能想出这个,而且它100%有效。自从我下了这一步,我现在就开始在代码中添加更多内容。如果我有更多的问题,我应该开始一个新的问题吗?我是这个网站的新手,设置不是一般论坛的典型。是的,你被要求为不同的问题创建一个新的问题。试着先搜索,因为我们以前可能已经回答过其他人请查看旅游:。如果我的答案解决了你的问题/是最好的答案,记得打我答案旁边的复选标记。欢迎来到SO。