2016-04-19 9 views
1

Ich habe eine Logdatei und benutze den Befehl Get-Content myLog.log –Wait, um den Inhalt dieser Datei anzuzeigen, genau wie mit dem Linux-Äquivalent tail.Warum "Get-Content" Inhalte nicht live aktualisiert?

Ich bemerkte, dass der Inhalt nicht aktualisiert wird, wie ich es von tail kenne. Der Inhalt wird nur nach einem bestimmten Intervall aktualisiert. Wie kann ich das Intervall ändern, ich denke, ich muss ein Argument für Wait übergeben, so dass es weiß, wie lange warten soll?

Antwort

1

Das Cmdlet Get-Content enthält weder eine Eigenschaft noch eine Funktion zum Festlegen des Aktualisierungsintervalls. Wahrscheinlich müssen Sie es selbst tun:

$linesPrinted = 0; 

while ($true) 
{ 
    $content = Get-Content myLog.log 
    $currentLineCount = $content | Measure-Object -Line | select -expand Lines 

    if ($currentLineCount -gt $linesPrinted) 
    { 
     $content[$linesPrinted .. $currentLineCount] 
     $linesPrinted = $currentLineCount 
    } 


    Sleep -Milliseconds 100 
} 
+0

In welchem ​​Format muss ich dieses Skript speichern, um es ausführbar zu machen? – Black

+1

Um Ihre Skripte zu testen, sollten Sie 'Powershell_ISE' (am besten als Admin) starten. Kopieren Sie das Skript in das Skriptfenster und drücken Sie F5, um es auszuführen. Später können Sie das Skript als 'ps1'-Datei speichern und mit Powershell ausführen. –

+0

Thx, aber Ihr Code funktioniert nicht wie erwartet, es lädt immer die Datei komplett von Anfang an. – Black

Verwandte Themen