Вызовите команду PowerShell для редактирования

Вызовите команду PowerShell для редактирования

Я знаю о команде Invoke-History (псевдоним r) для вызова и выполнения предыдущей команды, например r 29, но есть ли способ вызвать команду 29, но не выполнять ее, т. е. поместить ее в текущую строку, которую можно редактировать перед запуском? Немного похоже на многократное нажатие стрелки вверх? С длинной историей это настоящая боль, чтобы вернуться к редактированию и запуску более ранней команды.

Я знаю, что могу сделать что-то вроде этого, чтобы вспомнить текст команды:

ч 56 | эт

А затем копировать и вставлять, но с длинными командами, переносящимися на строку, вам придется копировать и вставлять в редактор, объединять строки, а затем копировать и вставлять обратно. Точно, бац!

решение1

Не могу найти способ выполнить powershell в powershell, но вы можете выполнить исполняемый файл powershell и передать команду powershell, и это сработает. Могут возникнуть проблемы с областью действия в зависимости от того, что вы делаете.

& powershell $(h 56).CommandLine

решение2

Не чистое решение Powershell, но вы можете перенаправить его в clip.exe, а затем вставить в консоль. Все еще два шага, но ваша строка должна быть правильно перенесена. Если вы используете XP, вам может потребоваться скопировать clip.exe из системы Server 2003.

(h 56).CommandLine | clip.exe

Связанный контент