¿Puede el terminal predeterminado de PowerShell mantener un historial de comandos?

5

¿Hay alguna forma de que PowerShell recuerde los comandos ingresados ​​durante las sesiones anteriores? Es decir, después de cerrar la ventana y volver a abrirla, ¿se puede configurar PowerShell para recordar los comandos?

Louis
fuente
Una ventana de comando de Powershell no mantiene un registro de forma predeterminada. Debe tener que usar un shell de comandos de terceros para obtener esta funcionalidad.
Ramhound
@Ramhound Darn, esperaba que pudiera llevar un archivo histórico, como lo hace Bash.
Louis
Fuera de la caja esta característica no existe.
Ramhound
Si lo necesitas para recuperar comandos que usas una y otra vez, ¿por qué no usar perfiles? También puedes mirar usando Start-Transcript.
Shawn Melton
@ShawnMelton ¿Qué quieres decir? Mi intención era usar perfiles, pero no veo cómo puedo guardar comandos automáticamente.
Louis

Respuestas:

3

Con un poco de secuencias de comandos, puede configurar esto, incluso sin software de terceros. Recomendaría leer la ayuda en Get-History, Add-History y about_History.

Como lo explica la ayuda, puede usar Get-History para obtener su historial actual y con un comando como Get-History | Export-CliXml C:\History.CliXml guardarlo en un archivo. Después de eso, puedes importar tu historial usando el comando Agregar historial.

(El archivo de ayuda Add-History en realidad explica cómo hacerlo con más detalle).

Espero que sea posible configurar su entorno para realizar estas acciones automáticamente, aunque cuestionaría la utilidad de tal configuración.

Mark
fuente
1
+1, gracias. La funcionalidad es todo lo que hay. Pero esto sería un poco demasiado engorroso. Simplemente presionando la flecha hacia arriba sin tener que usar Agregar historial sería ideal.
Louis
No puedo ver una forma automatizada de exportar el historial en una salida.
Louis
Veo a que te refieres. No puedo encontrar una manera de hacer que las teclas de flecha funcionen con el historial importado (no estoy seguro de por qué), pero es posible que pueda usar algo de esta Para ayudar con la automatización. Desafortunadamente, parece que es extremadamente difícil hacer que cualquier código se ejecute cuando se hace clic en el botón x; Tienes que escribir realmente salir.
Mark
1
Revisa github.com/lzybkr/PSReadline - Es compatible con las teclas de flecha con el historial importado. V2 tenía un error por lo que al hacer clic en la x no se ejecutaba de manera confiable su controlador de salida, ese error se solucionó en V3.
Jason Shirk
1
Orson Tyrell tiene una buena implementación de la sugerencia de Mark: orsontyrell.blogspot.co.at/2013/11/…
Daniel Calliess
2

Windows PowerShell en Windows 10 tiene esta funcionalidad de forma predeterminada.

El archivo histórico se encuentra en AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt.

Louis
fuente
¿Dónde está el archivo histórico?
0fnt
@ 0fnt He agregado la ubicación a la respuesta.
Louis
1) ¿No es esto solo si está utilizando el módulo 'PSReadline'? 2) ¿Hay alguna forma de usar Get-History (o '# & lt; término de búsqueda & gt; [TAB]') en este archivo?
Phobis