¿Hay alguna manera de mantener el historial de comandos de cmd entre sesiones?
¿Hay alguna manera de mantener el historial de comandos de cmd entre sesiones?
Respuestas:
Cambie a usar PowerShell y siga las instrucciones en el siguiente sitio para habilitar el historial:
Alternativamente, en cmd.exe, puede usar "doskey / history" al final de su sesión para mostrar lo que escribió en esa sesión, pero no hay forma de cargarlo realmente en la próxima sesión.
He encontrado 2 formas, ninguna de las cuales requiere cambiar a PowerShell.
cmd.exe
pero es una buena respuesta, y clink también admite un modo de inyección.
cmd
con él, no ha habido problemas, muy feliz con él.
Guardar el historial es un pequeño flujo de trabajo: aquí hay una forma menos "pesada" de hacer esto (sin libs externas).
Cree un archivo bat / cmd para configurar su historial, en este caso lo llamé MyEnvironment.cmd:
doskey save=doskey /history $g$g C:\CmdHistory.log
doskey quit=doskey /history $g$g C:\CmdHistory.log $T exit
doskey history=find /I "$*" C:\CmdHistory.log
cls
Luego ejecute esto desde "Inicio-> Ejecutar" (también puede configurar un alias para esto también):
cmd.exe /K C:\MyEnvironment.cmd
Cada vez que cierro una sesión, presiono "salir", o si tengo miedo de perder el historial a mitad de la sesión, presiono "guardar". Si quiero buscar algo en la historia, simplemente presiono "PALABRA CLAVE de la historia".
Según el comentario de @ dave_thompson_085, la AutoRun
función funciona bien si no desea utilizar el /K
interruptor. Si configura la clave del Registro correctamente, .cmd
o .bat
no necesita estar en %AppData%
, puede estar en la misma ubicación que ya está.
Si utiliza la %AppData%
ubicación, tenga en cuenta que cmd probablemente buscará su archivo por lotes en la carpeta "Roaming" (en lugar de la raíz de AppData).
Más información sobre la AutoRun
función CMD: https://superuser.com/a/302553/333316
$g
inserta un >
, y $t
es un separador de comandos.
>
y &&
caracteres directamente en el alias de doskey?
doskey quit=doskey /history
y guarde la salida de la creación de macro en un archivo de registro (ya sea nada o un mensaje de error); luego cierre la ventana (descartando todo). -Puedes escapar de esos personajes con un ^
lugar, creo. Me gusta ^>^>
y ^&
(... y sí, solo necesitas un ampersand)