2016-03-24 9 views
0

Ich muss 2 URLs von Powershell öffnen. Jeder erstellt eine Protokolldatei. Sobald die Protokolldatei der 1. URL vollständig ist, muss die 2. URL gestartet werden. Die Vervollständigung der Datei wird durch eine Zeichenkette "Ende des Protokolls" angezeigt. Jedes Protokoll dauert mindestens 15 Minuten. Da die Dauer nicht sicher ist, habe ich kein Schlafkommanet benutzt.Wie öffne ich eine Webseite von Powershell, sobald eine Datei mit einer bestimmten Zeichenfolge protokolliert wird?

Antwort

0

Ok, so ist es ziemlich einfach, Sie verwenden Select-String, um eine Textdatei nach einer Zeichenfolge zu suchen. Sie tun dies in einem while Block, während Select-String false zurückgibt (-Quiet macht das Cmdlet eine Bool-Rückgabe True oder False, wenn der Wert in der Datei vorhanden ist) Warten Sie die Zeitdauer und überprüfen Sie erneut.

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 
} 

Da Ihr erstes Skript 15 Minuten dauert zu beenden, Vielleicht möchten Sie es länger zwischen den Prüfungen machen warten, da, wenn seine häufigen es das erste Skript verlangsamen könnte.

+0

Danke! Ist es möglich, nichts auf der Konsole zurückzugeben, bis die Zeichenfolge identifiziert ist? Zeige nichts auf der Konsole und öffne die 2. URL sobald das 1. Log abgeschlossen ist. –

+0

Entfernen Sie einfach Zeile, die Write-Host sagt und es wird nichts angezeigt. Lassen Sie es mich wissen, wenn Sie danach suchen. – Nick

+0

@S.shaw Hat es funktioniert, wie Sie möchten? – Nick

Verwandte Themen