PowerShell-Befehl zum Bearbeiten aufrufen

695
munrobasher

Ich kenne den Invoke-History-Befehl (Alias ​​r), um einen vorherigen Befehl abzurufen und auszuführen, z. B. r 29, aber gibt es eine Möglichkeit, den Befehl 29 abzurufen, ihn aber nicht auszuführen, dh in die aktuelle Zeile, die Sie bearbeiten können, bevor Sie ihn ausführen? Ein bisschen wie den Pfeil nach oben mehrmals drücken? Mit einer langen Geschichte ist es ein richtiger Schmerz, wieder zu bearbeiten, auszuführen und einen früheren Befehl auszuführen.

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

h 56 | fl

Und dann kopieren und einfügen, aber mit langen Befehlen, die eine Zeile umschließen, müssen Sie in einen Editor kopieren und einfügen, die Zeilen zusammenfügen und dann wieder kopieren und einfügen. Richtige Fette!

2
Dies stimmt nicht mit den Kriterien für Ihre Antwort überein, aber DOSKEY.exe funktioniert in PowerShell. Vielleicht hilft es ein bisschen. http://www.computerhope.com/doskeyhl.htm Keltari vor 10 Jahren 0

2 Antworten auf die Frage

2
rob

Es kann keine Möglichkeit gefunden werden, Powershell in Powershell auszuführen, aber Sie können die ausführbare Powershell-Datei ausführen und den Powershell-Befehl übergeben, und es funktioniert. Abhängig davon, was Sie tun, kann dies zu Problemen mit dem Umfang führen.

& powershell $(h 56).CommandLine 
2
Spamwich

Keine reine Powershell-Lösung, aber Sie könnten es in die Datei clip.exe leiten und dann in die Konsole einfügen. Immer noch zwei Schritte, aber Ihre Linie sollte ordnungsgemäß umlaufen. Wenn Sie XP verwenden, müssen Sie möglicherweise clip.exe von einem Server 2003-System kopieren.

(h 56).CommandLine | clip.exe 
Sollte das nicht $ (h 56) sein? Könnte auch `Set-Clipboard` anstelle von` clip.exe` verwenden. Gute Idee aber. CJBS vor 6 Jahren 0