Powershell equivalente a Ctrl + R?

13

No bash, eu posso fazer Ctrl+ Re começar a digitar um comando para que ele pesquise no meu histórico.

Como faço isso no PowerShell?

Existe uma maneira de vincular uma chave a algo como?

function GH($str) {get-history | select-string $str}

Mas eu precisaria reler a string para cada entrada de caractere ou removida para gerar comandos correspondentes, como Ctrl+ Rfaz.

Isso é possível?

red888
fonte

Respostas:

11

Você pode corrigir isso adotando o módulo PSReadLine .

Veja um artigo sobre o Hey, Equipe de Scripts! blog sobre essa implementação de linha de leitura inspirada no bash para o PowerShell.

Em particular, o uso de Ctrl+ Alt+ ( Shift) +? para mostrar todas as combinações de teclas.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.0.10240.16384
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10240.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

Ctrl+R

PS C:\> Get-Module -ListAvailable
bck-i-search: mo_

Ctrl+ Alt+ ( Shift) +S

Key                  Function                 Description
---                  --------                 -----------
Ctrl+r               ReverseSearchHistory     Search history backwards interactively
Ctrl+s               ForwardSearchHistory     Search history forward interactively

Em resumo: instale este módulo manualmente ou atualize para o Windows PowerShell v5.

MILÍMETROS
fonte
5

Digite seu termo de pesquisa e pressione F8; isso pesquisará seu histórico de comandos.

Há uma lista muito útil de atalhos do PowerShell aqui .

Sam Cogan
fonte
Você já tentou isso? Nunca realmente funcionou para mim ou apenas metade do tempo. Por exemplo, eu digito vários comandos get- <whatever>. Então digite get- <F8> e ele percorre apenas um ou dois comandos aleatórios do meu histórico? Não sei o que diabos está fazendo. Por exemplo, eu apenas digitei get-childitem e executei-o imediatamente após o tipo get-c <f8> e não recebo nada. Talvez minha sessão esteja confusa?
precisa saber é
Funciona 100% do tempo para mim, isso é com WMF 5 instalado
Sam Cogan
5

Não sei quando isso foi adicionado, mas no meu Windows 10 não personalizado e atualizado, ele está embutido. Pressione ctrl + r para pesquisar o histórico reverso, ele funciona muito bem.

insira a descrição da imagem aqui

skrebbel
fonte
Eu também trabalho no win10. Ctrl + R funciona no PowerShell, mas não funciona na janela do cmd.
dudu
Claro, mas por que você precisaria usar o cmd.exe?
Raúl Salinas-Monteagudo
0

Também há pesquisa gráfica na tecla F7. Quando pressionado, ele exibe pop-up que você pode rolar para procurar o comando que foi executado anteriormente. Pressionar enter enquanto o cursor passa a linha a repetirá novamente.

termil0r
fonte
0

Você também pode iniciar seu comando colocando um caractere # na frente do texto de pesquisa parcial do comando que está procurando e pressione toque depois (várias vezes se necessário) para pesquisar no histórico da sessão.

Tolga
fonte