我在想如何告訴powershell在繼續執行腳本之前等待某個日誌行。我設法使用下面告訴PowerShell來尋找什麼,在繼續之前使用powershell等待特定行出現
Get-Content log.txt -Wait | select-string "keyword"
但PowerShell中絕不會繼續因使用-Wait
。有沒有另外一種方法可以告訴powershell在繼續之前只等待線出現一次?
我在想如何告訴powershell在繼續執行腳本之前等待某個日誌行。我設法使用下面告訴PowerShell來尋找什麼,在繼續之前使用powershell等待特定行出現
Get-Content log.txt -Wait | select-string "keyword"
但PowerShell中絕不會繼續因使用-Wait
。有沒有另外一種方法可以告訴powershell在繼續之前只等待線出現一次?
更好的方式來得到這個工作:
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"
一些實驗後,似乎以下將做的工作:
Get-Content log.txt -Wait | Select-String "keyword" | %{ write-host $_; break}
啊,我補充幾乎一樣。但是您希望腳本隨後啓動,但只是暫停不會進入腳本的下一行。看到我的答案是否有幫助 – manojlds
是否有可能這會錯過一個條目,如果2行被同時插入? – JNK
@JNK - 是的,我正在看。這可能發生。所以基本上歸結爲你的答案。 – manojlds
@JNK - 哦不,你刪了嗎? – manojlds