Startseite » wie man » Verwenden des Befehlsverlaufs in Windows PowerShell

    Verwenden des Befehlsverlaufs in Windows PowerShell

    Windows PowerShell verfügt über eine integrierte Befehlsverlaufsfunktion, die detaillierte Informationen zu den ausgeführten Befehlen enthält. Wie die Eingabeaufforderung speichert PowerShell nur den Befehlsverlauf für die aktuelle Sitzung.

    So verwenden Sie den Befehlszeilenpuffer

    PowerShell verfügt technisch über zwei Arten von Befehlsverläufen. Erstens gibt es den Befehlszeilenpuffer, der eigentlich Teil der grafischen PowerShell-Terminalanwendung und nicht der zugrunde liegenden Windows PowerShell-Anwendung ist. Es bietet einige grundlegende Funktionen:

    • Aufwärtspfeil: Rufen Sie den vorherigen Befehl auf, den Sie eingegeben haben. Drücken Sie wiederholt die Taste, um den Befehlsverlauf anzuzeigen.
    • Pfeil nach unten: Rufen Sie den nächsten Befehl auf, den Sie eingegeben haben. Drücken Sie wiederholt die Taste, um den Befehlsverlauf anzuzeigen.
    • F8: Durchsuchen Sie Ihren Befehlsverlauf nach einem Befehl, der mit dem Text in der aktuellen Befehlszeile übereinstimmt. Wenn Sie also nach einem Befehl suchen möchten, der mit „p“ begann, geben Sie in der Befehlszeile „p“ ein und tippen dann wiederholt auf F8, um die Befehle in Ihrer Historie zu durchlaufen, die mit „a“ beginnen..

    Standardmäßig speichert der Puffer die letzten 50 Befehle, die Sie eingegeben haben. Um dies zu ändern, klicken Sie mit der rechten Maustaste auf die Titelleiste des PowerShell-Eingabeaufforderungsfensters, wählen Sie „Eigenschaften“ und ändern Sie den Wert für „Puffergröße“ unter Befehlsverlauf.

    So zeigen Sie den PowerShell-Verlauf an

    Windows PowerShell selbst speichert eine Liste der Befehle, die Sie in der aktuellen PowerShell-Sitzung eingegeben haben. Sie können mehrere enthaltene Cmdlets verwenden, um Ihren Verlauf anzuzeigen und mit ihm zu arbeiten.

    Führen Sie das folgende Cmdlet aus, um den Verlauf der eingegebenen Befehle anzuzeigen:

    Get-History

    Sie können Ihre Historie durchsuchen, indem Sie die resultierende Ausgabe an die übermitteln Select-String Cmdlet und Angabe des zu suchenden Textes. Ersetzen Sie im unteren Cmdlet "Beispiel" durch den Text, nach dem Sie suchen möchten:

    Get-History | Select-String -Pattern "Beispiel"

    Führen Sie den folgenden Befehl aus, um einen ausführlicheren Befehlsverlauf anzuzeigen, in dem der Ausführungsstatus jedes Befehls zusammen mit den Start- und Endzeiten angezeigt wird:

    Get-History | Format-List -Property *

    Standardmäßig ist die Get-History Das Cmdlet zeigt nur die 32 neuesten Verlaufseinträge an. Wenn Sie eine größere Anzahl von Verlaufseinträgen anzeigen oder suchen möchten, verwenden Sie die -Anzahl Mit dieser Option können Sie festlegen, wie viele Verlaufseinträge von PowerShell angezeigt werden sollen.

    Get-History -Count 1000 Get-History -Count 1000 | Select-String -Pattern "Example" Get-History -Count 1000 | Format-List -Property *

    So führen Sie Befehle aus Ihrem Verlauf aus

    Verwenden Sie das folgende Cmdlet, um einen Befehl aus Ihrem Verlauf auszuführen, und geben Sie die ID-Nummer des Verlaufselements an, wie durch das Symbol angezeigt Get-History Cmdlet:

    Invoke-History #

    Um zwei Befehle aus Ihrem Verlauf hintereinander auszuführen, verwenden Sie Aufruf-Verlauf zweimal in derselben Zeile, getrennt durch ein Semikolon. Um zum Beispiel den ersten Befehl in Ihrem Verlauf schnell auszuführen und dann den zweiten, würden Sie Folgendes ausführen:

    Invoke-History 1; Invoke-History 2

    So löschen Sie Ihren PowerShell-Verlauf

    Führen Sie das folgende Cmdlet aus, um den Verlauf der eingegebenen Befehle zu löschen:

    Clear-History

    Beachten Sie, dass der Befehlszeilenpuffer vom PowerShell-Verlauf getrennt ist. Also auch nachdem du rennst Clear-History, Sie können die Aufwärts- und Abwärtspfeiltasten weiterhin drücken, um durch die eingegebenen Befehle zu blättern. Wenn Sie jedoch laufen Get-History, Sie werden sehen, dass Ihr PowerShell-Verlauf tatsächlich leer ist.

    PowerShell kann sich zwischen den Sitzungen nicht an Ihren Verlauf erinnern. Um beide Befehlsverläufe für die aktuelle Sitzung zu löschen, müssen Sie lediglich das PowerShell-Fenster schließen.

    Wenn Sie das PowerShell-Fenster nach dem Löschen des Verlaufs löschen möchten, können Sie dies tun, indem Sie das ausführen klar Befehl:

    klar

    So speichern und importieren Sie Ihren PowerShell-Verlauf

    Wenn Sie den PowerShell-Befehlsverlauf für die aktuelle Sitzung speichern möchten, um später darauf zurückgreifen zu können, können Sie dies tun.

    Get-History | Export-Clixml -Pfad c: \ Benutzer \ Name \ Desktop \ Befehle.xml

    Dadurch wird Ihr Befehlsverlauf als ausführliche XML-Datei mit den Werten "StartExecutionTime" und "EndExecutionTime" für jeden Befehl exportiert, aus denen hervorgeht, wann der Befehl ausgeführt wurde und wie lange es gedauert hat.

    Wenn Sie Ihren PowerShell-Verlauf in eine solche XML-Datei exportiert haben, können Sie (oder andere Personen, an die Sie die XML-Datei senden) ihn mit dem Cmdlet Add-History in eine andere PowerShell-Sitzung importieren:

    Add-History -InputObject (Import-Clixml -Pfad C: \ Benutzer \ Name \ Desktop \ Befehle.xml)

    Wenn Sie das ausführen Get-History Nachdem Sie eine solche XML-Datei importiert haben, werden Sie sehen, dass die Befehle aus der XML-Datei in den Verlauf Ihrer aktuellen PowerShell-Sitzung importiert wurden.