16Aug
Windows PowerShell verfügt über eine integrierte Befehlsverlaufsfunktion, die detaillierte Informationen zu den ausgeführten Befehlen bereitstellt. Wie die Eingabeaufforderung merkt sich PowerShell nur Ihren Befehlsverlauf für die aktuelle Sitzung.
So verwenden Sie den Befehlszeilenpuffer
PowerShell verfügt technisch über zwei Arten von Befehlsverlauf. Erstens gibt es den Befehlszeilenpuffer, der eigentlich Teil der grafischen PowerShell-Terminalanwendung ist und nicht Teil der zugrunde liegenden Windows PowerShell-Anwendung ist. Es bietet einige grundlegende Funktionen:
- Pfeil nach oben : Rufen Sie den vorherigen Befehl, den Sie eingegeben haben, ab. Drücke die Taste mehrmals, um durch deinen Befehlsverlauf zu gehen.
- Abwärtspfeil : Rufen Sie den nächsten Befehl, den Sie eingegeben haben, ab. Drücke die Taste mehrmals, um durch deinen Befehlsverlauf zu gehen.
- F8 : Durchsuchen Sie Ihren Befehlsverlauf nach einem Befehl, der dem Text in der aktuellen Befehlszeile entspricht. Wenn Sie also nach einem Befehl suchen möchten, der mit "p" beginnt, geben Sie "p" in die Befehlszeile ein und tippen Sie dann wiederholt auf F8, um durch die Befehle in Ihrem Verlauf zu blättern, 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 Befehlshistorie.
Anzeigen des PowerShell-Verlaufs
In Windows PowerShell selbst wird ein Verlauf der Befehle gespeichert, die Sie in der aktuellen PowerShell-Sitzung eingegeben haben. Sie können mehrere enthaltene Cmdlets verwenden, um Ihren Verlauf anzuzeigen und damit zu arbeiten.
Führen Sie das folgende Cmdlet aus, um den Verlauf der eingegebenen Befehle anzuzeigen:
Get-HistorySie können Ihren Verlauf durchsuchen, indem Sie die resultierende Ausgabe an das Cmdlet Select-String leiten und den zu suchenden Text angeben. Ersetzen Sie "Beispiel" in dem Cmdlet unten mit dem Text, nach dem Sie suchen möchten:
Get-History |Select-String -Pattern "Beispiel"Um einen detaillierteren Befehlsverlauf anzuzeigen, der den Ausführungsstatus jedes Befehls zusammen mit seinen Start- und Endzeiten anzeigt, führen Sie den folgenden Befehl aus:
Get-History |Format-List -Property *Standardmäßig zeigt das Cmdlet Get-History nur die 32 letzten Verlaufseinträge an. Wenn Sie eine größere Anzahl von Verlaufseinträgen anzeigen oder durchsuchen möchten, verwenden Sie die Option -Count, um anzugeben, wie viele Verlaufseinträge PowerShell anzeigen soll:
Get-History -Count 1000 Get-History -Count 1000 |Select-String -Pattern "Beispiel" 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 dem Verlauf auszuführen: Geben Sie die ID-Nummer des Verlaufselements wie im Cmdlet Get-History angezeigt an:
Invoke-History #Um zwei Befehle aus Ihrem Verlauf nacheinander auszuführen, verwenden Sie Invoke-History zweimal in derselben Zeile, getrennt durch ein Semikolon. Um beispielsweise den ersten Befehl in Ihrem Verlauf und dann den zweiten auszuführen, führen Sie Folgendes aus:
Invoke-Verlauf 1; Invoke-Verlauf 2So löschen Sie Ihren PowerShell-Verlauf
Löschen des Verlaufs der Befehle, die Sie eingegeben habenFühren Sie das folgende Cmdlet aus:
Clear-HistoryBeachten Sie, dass der Befehlszeilenpuffer vom PowerShell-Protokoll getrennt ist. Auch nach dem Ausführen von Clear-History können Sie die Pfeiltasten nach oben und nach unten drücken, um durch die eingegebenen Befehle zu blättern. Wenn Sie jedoch Get-History ausführen, sehen Sie, dass Ihr PowerShell-Verlauf tatsächlich leer ist.
PowerShell speichert Ihren Verlauf zwischen Sitzungen nicht. Um beide Befehlshistorien 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, führen Sie den Befehl Löschen aus:
löschen So speichern und importieren Sie Ihren PowerShell-Verlauf
Wenn Sie den PowerShell-Befehlsverlauf für den aktuellen Befehl speichern möchtenSitzung, so dass Sie später darauf verweisen können, können Sie dies tun.
Get-History |Export-Clixml -Pfad c: \ Benutzer \ Name \ Desktop \ Befehle.xmlDies exportiert Ihren Befehlsverlauf als detaillierte XML-Datei mit den Werten "StartExecutionTime" und "EndExecutionTime" für jeden Befehl, der Ihnen mitteilt, wann der Befehl ausgeführt wurdeWie lange dauerte es, bis ich fertig war.
Nachdem Sie Ihren PowerShell-Verlauf in eine solche XML-Datei exportiert haben, können Sie( oder jeder andere Benutzer, an den Sie die XML-Datei senden) diesen mit dem Add-History-Cmdlet in eine andere PowerShell-Sitzung importieren:
Add-History -InputObject( Import-Clixml -Pfad C: \ Benutzer \ Name \ Desktop \ Befehle.xml)Wenn Sie das Cmdlet Get-History nach dem Importieren einer solchen XML-Datei ausführen, werden die Befehle aus dem XML-Code angezeigtDatei wurde in den Verlauf Ihrer aktuellen PowerShell-Sitzung importiert.