使用powershell在继续之前等待特定行出现

时间:2011-11-22 15:59:29

标签: powershell

我想知道如何在继续编写脚本之前告诉powershell等待某个日志行。我设法使用以下告诉powershell要查找的内容,

Get-Content log.txt -Wait | select-string "keyword"

但由于-Wait的使用,powershell永远不会继续。还有另一种方法我可以告诉powershell只在等待线路出现一次才能继续吗?

2 个答案:

答案 0 :(得分:2)

更好的方法让它发挥作用:

while($true){
    Get-Content .\test.log -Wait | Select-String "keyword" | %{ write-host Found $_; break}
}

write-host "start script"

可能效率不高,但你可以这样试试:

while(-not (gc .\test.log | select-string "keyword" )){ sleep 1}
write-host "start script"

<击>

答案 1 :(得分:2)

经过一些实验,以下似乎可以完成这项任务:

Get-Content log.txt -Wait | Select-String "keyword" | %{ write-host $_; break}