Отредактируйте команду из истории PowerShell, прежде чем она будет выполнена

Если я использую команду из истории powershell, такую ​​как invoke-history -id 5 она будет выполнена как есть.
Есть ли способ отредактировать команду перед выполнением?
Я нашел только опцию -confirm , но она покажет мне только команду перед выполнением, но я не нашел возможности ее отредактировать.

Благодарность

Всего 1 ответ


Я искал способ сделать это, вставив вывод (Get-History -Id 5).CommandLine во входной буфер, но я думаю, что это неправильный путь. Вы можете выполнить обратный поиск в истории команд, нажав ^R ( CTRL + R ) и напечатав что-нибудь из своей истории. Команда разрешит самую последнюю команду, соответствующую вашему вводу, но вы можете продолжить ввод или снова нажать ^R для разрешения следующей самой последней команды.

Это работает так же, как обратный поиск в оболочках Linux, но я объясню ниже для непосвященных.


Если я вчера запустил следующее:

ping www.google.com

И решил, что хочу запустить это снова сегодня, я набрал бы следующие нажатия клавиш:

^R ping

Который будет вставлять самую последнюю команду, содержащую ping . Если ping www.google.com не является самым последним совпадением, нажмите ^R раз, пока не получите предыдущую нужную команду.


Это менее подходит в сценарии автоматизации, но полезно при интерактивной работе с терминалом. Если вам нужно программно преобразовать предыдущую команду, вы можете получить выходные данные (Get-History -Id 5).CommandLine и соответствующим образом преобразовать полученную строку перед выполнением с помощью оператора call & .


Есть идеи?

10000