2016-03-24 1 views
0

私はpowershellから2つのURLを開く必要があります。それぞれがログファイルを作成します。最初のURLのログファイルが完成したら、2番目のURLを起動する必要があります。ファイルの完成は文字列 "end of log"で示されます。各ログには最低15分かかります。期間が明確ではないので、私は睡眠昏睡を使用しませんでした。ファイルが特定の文字列でログされたら、powershellからWebページを開くにはどうすればいいですか?

答えて

0

これはかなり単純です。Select-Stringを使用して、テキストファイルで文字列を検索します。これはwhileブロックで実行されます。そのため、Select-Stringがfalseを返します(-Quiet)。コマンドレットがboolをtrueまたはfalseに戻します(値がファイルに存在する場合はfalse)。時間が経過するまで待ちます。

While ($(Select-String -Path 'C:\Logs\File1.txt' -Pattern 'end of log' -quiet) -eq $False) 
{ 
    Write-Host "No end of log in file 1 waiting.." 
    Sleep -Seconds 3 
} 

あなたの最初のスクリプトが終了する15分かかりますので、あなたは、その頻繁に、それは最初のスクリプトが遅くなる可能性がある場合ので、それはチェックの間で長く待つようにしたいかもしれません。

+0

ありがとうございます!文字列が特定されるまでコンソール上で何も返さないことは可能ですか?最初のログが完了したら、コンソールに何も表示せずに2番目のURLを開きます。 –

+0

write-hostという行を削除するだけで何も表示されません。あなたの後に何があったのか教えてください。 – Nick

+0

@ S.Shawそれはそれがあなたが好きな方法で働かせましたか? – Nick

関連する問題