Powershell equivalente de Ctrl + R?


13

En bash puedo hacer Ctrl+ Ry comenzar a escribir un comando para que busque en mi historial.

¿Cómo hago eso en powershell?

¿Hay alguna manera de vincular una clave a algo así?

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

Pero necesitaría volver a leer la cadena para cada entrada de caracteres o eliminarla para generar comandos coincidentes como Ctrl+ Rhace.

es posible?

Respuestas:


11

Puede solucionar esto adoptando el módulo PSReadLine .

¡Vea un artículo sobre Hey, Scripting Guy! blog sobre esta implementación de línea de lectura inspirada en bash para PowerShell.

En particular, el uso de Ctrl+ Alt+ ( Shift) +? para mostrar todas las combinaciones 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

En resumen: instale este módulo a mano o actualice a Windows PowerShell v5.


5

Escriba su término de búsqueda y luego presione F8, esto buscará en su historial de comandos.

Hay una lista muy útil de atajos PowerShell aquí .


¿Lo has intentado tú mismo? Realmente nunca funcionó para mí o solo la mitad del tiempo. Por ejemplo, escribo un montón de comandos get- <whatever>. Luego escriba get- <F8> y solo se desplazará por uno o dos comandos aleatorios de mi historial. No sé qué demonios está haciendo. Por ejemplo, simplemente escribí get-childitem y lo ejecuté inmediatamente después de escribir get-c <f8> y no obtengo nada. Tal vez mi sesión está en mal estado?
red888

Funciona el 100% del tiempo para mí, esto es con WMF 5 instalado
Sam Cogan

5

No sé cuándo se agregó esto, pero en mi Windows 10 no personalizado y actualizado, está integrado. Presiona Ctrl + R para la búsqueda de historial inverso, funciona muy bien.

ingrese la descripción de la imagen aquí


También trabajo en win10. Ctrl + R funciona en PowerShell, pero no funciona en la ventana cmd.
dudu

Claro, pero ¿por qué necesitarías usar cmd.exe?
Raúl Salinas-Monteagudo

0

También hay búsqueda gráfica bajo la tecla F7. Cuando se presiona, mostrará una ventana emergente que puede desplazar para buscar el comando que se ejecutó anteriormente. Al presionar Intro mientras el cursor se desplaza, la línea volverá a ejecutarlo.


0

También puede iniciar su comando colocando un carácter # delante del texto de búsqueda parcial del comando que está buscando, luego presione tocar después (varias veces si es necesario) para buscar en el historial de la sesión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.