2011-11-22 47 views
3

我在想如何告訴powershell在繼續執行腳本之前等待某個日誌行。我設法使用下面告訴PowerShell來尋找什麼,在繼續之前使用powershell等待特定行出現

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

但PowerShell中絕不會繼續因使用-Wait。有沒有另外一種方法可以告訴powershell在繼續之前只等待線出現一次?

回答

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" 

+0

是否有可能這會錯過一個條目,如果2行被同時插入? – JNK

+0

@JNK - 是的,我正在看。這可能發生。所以基本上歸結爲你的答案。 – manojlds

+0

@JNK - 哦不,你刪了嗎? – manojlds

2

一些實驗後,似乎以下將做的工作:

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

啊,我補充幾乎一樣。但是您希望腳本隨後啓動,但只是暫停不會進入腳本的下一行。看到我的答案是否有幫助 – manojlds

相關問題