Powershell: вставить последнюю команду

Есть ли способ заставить powershell вставить мою последнюю команду в мою текущую командную строку?

Например, предположим, что я печатаю:

get-service

и решил, что мне нужно больше информации об этом, поэтому я бы набрал:

get-help get-service

Вместо этого кажется, что должен быть ярлык, чтобы я мог что-то вроде:

get-help %x

и получить те же результаты, поскольку ярлык %x в этом примере будет заменен предыдущей командой get-service. Может быть, даже кнопка на клавиатуре, чтобы получить тот же результат. Конечно, это надуманный пример, но кажется, что он был бы действительно полезен в более сложных сценариях. Есть что-нибудь подобное в наличии?


person A.R.    schedule 22.02.2013    source источник


Ответы (3)


Автоматическая переменная $$ содержит самую последнюю команду.

Так что вы можете сделать

get-service
get-help $$
person SirPentor    schedule 22.02.2013

В PowerShell у вас есть переменная для последней команды, «вызванной» $$ . Бывший:

PS > $$
get-help

PS > Get-Service

Status  Name                               DisplayName                                           
------  ----                               -----------                                           
Running AdobeARMservice                    Adobe Acrobat Update Service                          

PS > get-help $$ -full

NAME
    Get-Service

PS > $$
-full

PS > Get-Help Get-Service

NAME
    Get-Service

PS > $$
Get-Service

Однако, как вы можете видеть в приведенном выше примере, он сохраняет последнюю часть предыдущей команды, что иногда может иметь для вас неприятные последствия.

person Frode F.    schedule 22.02.2013

Стрелка вверх перемещает назад по вашей истории, и вы можете редактировать ранее введенные команды, чтобы выполнять их как новые.

Get-Service

Up-arrow
Home

Help (space)
person alroc    schedule 22.02.2013