Kann das Standard-PowerShell-Terminal einen Befehlsverlauf führen?

2557
Louis

Gibt es eine Möglichkeit, dass sich PowerShell-Befehle an die vorherigen Sitzungen erinnern lassen? Kann PowerShell nach dem Schließen und erneuten Öffnen des Fensters so eingerichtet werden, dass es sich an die Befehle erinnert?

4
A Powershell command window does not keep a log by default. You should have to use a third-party command shell to get this functionality. Ramhound vor 10 Jahren 0
@Ramhound Darn, ich hatte gehofft, es könnte eine Verlaufsdatei sein, wie Bash es tut. Louis vor 10 Jahren 0
Im Auslieferungszustand ist diese Funktion nicht vorhanden. Ramhound vor 10 Jahren 0
Wenn Sie Befehle abrufen möchten, die Sie immer wieder verwenden, warum nicht Profile verwenden? Sie können auch mit Start-Transcript suchen. Shawn Melton vor 10 Jahren 0
@ShawnMelton Wie meinst du das? Ich wollte Profile verwenden, sehe aber nicht, wie ich Befehle automatisch speichern kann. Louis vor 10 Jahren 0
Warum müssen Sie sie automatisch speichern? Müssen Sie buchstäblich den genauen Befehl oder den Zweck des Befehls speichern? Wenn ich einen Befehl ausstelle, den ich ein zweites Mal verwende, dann kann ich diesen Befehl in "Mein Notizbuch" oder Profil wieder zur Verwendung bringen. Shawn Melton vor 10 Jahren 0
http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx stieß dies vom Architekten hinter Powershell. Sie müssen sich nur darum kümmern, den Ausgang nicht zu binden oder das rote X zu drücken, um das Fenster zu schließen. Shawn Melton vor 10 Jahren 0

2 Antworten auf die Frage

2
Mark

Mit etwas Scripting können Sie dies auch ohne Software von Drittanbietern einrichten. Ich würde empfehlen, die Hilfe zu Get-History, Add-History und about_History zu lesen.

Wie in der Hilfe erläutert, können Sie mit Get-History Ihren aktuellen Verlauf abrufen und mit einem Befehl, z. B. Get-History | Export-CliXml C:\History.CliXmlin einer Datei speichern. Anschließend können Sie Ihr Protokoll mit dem Befehl "Add-History" importieren.

(In der Hilfedatei zum Hinzufügen von Verlaufsdaten wird tatsächlich genauer erläutert, wie dies ausgeführt wird.)

Ich würde erwarten, dass es möglich ist, Ihre Umgebung so zu konfigurieren, dass diese Aktionen automatisch ausgeführt werden, obwohl ich die Zweckmäßigkeit eines solchen Setups in Frage stellen würde.

+1 danke Die Funktionalität ist alles da. Dies wäre jedoch etwas umständlich. Es wäre ideal, nur den Aufwärtspfeil zu drücken, ohne Add-History verwenden zu müssen. Louis vor 10 Jahren 1
Ich kann keine automatisierte Methode zum Exportieren des Verlaufs auf einem Ausgang sehen. Louis vor 10 Jahren 0
I see what you mean. I can't find a way to make the arrow keys work with the imported history (not sure why), but you might be able to use something from [this](https://lopsa.org/content/persistent-history-powershell) to help with automation. Unfortunately it seems that it's extremely difficult to make any code execute when the x button is clicked; you have to actually type exit. Mark vor 10 Jahren 0
Besuchen Sie http://www.github.com/lzybkr/PSReadline - es unterstützt Pfeiltasten mit importiertem Verlauf. V2 hatte einen Fehler, so dass ein Klick auf das x Ihren Exit-Handler nicht zuverlässig ausgeführt hat. Dieser Fehler wurde in V3 behoben. Jason Shirk vor 10 Jahren 1
Orson Tyrell hat eine nette Umsetzung von Marks Vorschlag: http://orsontyrell.blogspot.co.at/2013/11/true-powershell-command-history.html Daniel Calliess vor 9 Jahren 1
2
Louis

Die Windows PowerShell in Windows 10 verfügt standardmäßig über diese Funktionalität.

Die History-Datei befindet sich unter AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt.

Wo ist die History-Datei? 0fnt vor 7 Jahren 0
@ 0fnt Ich habe den Ort zur Antwort hinzugefügt. Louis vor 7 Jahren 0
1) Ist dies nicht der Fall, wenn Sie das Modul 'PSReadline' verwenden? 2) Gibt es eine Möglichkeit, Get-History (oder '# [TAB] ') gegen diese Datei? Phobis vor 7 Jahren 0