PowerShell-Befehl zum Bearbeiten abrufen

PowerShell-Befehl zum Bearbeiten abrufen

Ich kenne den Befehl „Invoke-History“ (alias „r“), um einen vorherigen Befehl abzurufen und auszuführen, z. B. „r 29“, aber gibt es eine Möglichkeit, den Befehl 29 abzurufen, aber nicht auszuführen, ihn also in die aktuelle Zeile einzufügen, die Sie vor dem Ausführen bearbeiten können? Ein bisschen so, als würde man mehrmals die Aufwärtspfeiltaste drücken? Bei einem langen Verlauf ist es ziemlich mühsam, einen früheren Befehl bearbeiten und ausführen zu können.

Ich weiß, dass ich so etwas tun kann, um den Text eines Befehls abzurufen:

h 56 |

Und dann kopieren und einfügen, aber bei langen Befehlen, die über eine Zeile hinausgehen, müssen Sie in einen Editor kopieren und einfügen, die Zeilen zusammenfügen und dann wieder zurückkopieren und einfügen. Ganz schön Quatsch!

Antwort1

Ich kann keine Möglichkeit finden, Powershell innerhalb von Powershell auszuführen, aber Sie können die ausführbare Powershell-Datei ausführen und den Powershell-Befehl übergeben, und es funktioniert. Je nachdem, was Sie tun, kann es zu Problemen mit dem Umfang kommen.

& powershell $(h 56).CommandLine

Antwort2

Keine reine Powershell-Lösung, aber Sie könnten es in clip.exe weiterleiten und dann in die Konsole einfügen. Immer noch zwei Schritte, aber Ihre Zeile sollte richtig umbrochen werden. Wenn Sie XP verwenden, müssen Sie möglicherweise clip.exe von einem Server 2003-System kopieren.

(h 56).CommandLine | clip.exe

verwandte Informationen