Использование powershell для ожидания появления определенной строки перед продолжением - PullRequest
3 голосов
/ 22 ноября 2011

Мне интересно, как я могу сказать PowerShell подождать определенную строку журнала, прежде чем продолжить работу со сценарием. Мне удалось воспользоваться следующим сообщением PowerShell, что искать,

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

Но PowerShell никогда не будет продолжаться из-за использования -Wait. Есть ли другой способ, которым я могу сказать PowerShell только дождаться появления строки один раз, прежде чем продолжить?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

После некоторого экспериментирования кажется, что следующее сделает эту работу:

Get-Content log.txt -Wait | Select-String "keyword" | %{ write-host $_; break}
2 голосов
/ 22 ноября 2011

Лучший способ заставить это работать:

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"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...