Pregunta ¿Existe una historia global y persistente de CMD?


A veces me olvido de cómo se ve la sintaxis exacta de un comando de CMD y luego me gustaría buscar mi propio historial de CMD. Claramente, dentro de la misma sesión, puede navegar con las teclas de flecha hacia arriba y hacia abajo, pero ¿qué pasa con el historial de las sesiones anteriores de CMD? ¿Hay un archivo, un registro en el que se escribe la historia o todo va a Nirvana digital?

¡Gracias!


81
2017-12-17 18:06


origen


Puede secuestrar el comando de salida para guardar automáticamente un registro antes de salir: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $* pero deberá descubrir cómo ejecutar esto automáticamente en cada inicio de sesión de símbolo del sistema. PD: Asegúrese de que la ruta del archivo de registro sea escribible. C:\  no se puede escribir para un indicador de comando que no sea de administrador. - ADTC
@ADTC: AutoRun debe manejar 'cada inicio': superusuario.com/a/302553/333316 o stackoverflow.com/a/17405182/2868801 - dave_thompson_085


Respuestas:


No de forma nativa pero echa un vistazo: http://mridgers.github.io/clink/ , hace que cmd.exe sea mucho más productivo. Citando características de la página del proyecto:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.

59
2018-03-13 08:24



clink solucionó todo - Still.Tony
¿Algún plan para incluirlo por defecto en Windows? :RE - Jaime Hablutzel
Puede establecer un ~/.inputrc cuando se usa clink? (¿Y sabes si se puede usar la Consola o algo así?) - Mike H-R
Al parecer, ver el doc. github.com/mridgers/clink/blob/master/docs/clink.md. - Baris Demiray
... excepto los alias. clink odia doskey; Olvida todos tus años y alias cuidadosamente asignados. Es por eso que dejé de usarlo. aunque echo de menos todas las características. - w17t


No, el historial del símbolo del sistema de Windows no se puede guardar cuando finaliza una sesión.


19
2017-12-17 18:11



¿de verdad? ¿Cómo sabes esto? Perdón por cuestionarte, supongo que tienes razón, pero ¿cómo puedes saberlo a menos que hayas programado la maldita cosa? - raoulsson
Ok, permítanme reformular :-) El intérprete de comandos de Windows ("cmd.exe") no brinda soporte para guardar / exportar / mantener el historial, de lo contrario, Microsoft no lo documentó y nadie pudo hacerlo. para encontrarlo. Por supuesto, puede intentar solucionarlo, como sugirió Sean, pero no hay (o parece que haya) soporte incorporado para esto. - Massimo
Puede presionar F7 para ver una lista de historial de la sesión actual. - jftuga
CORRIENTE sesión es la palabra clave aquí. - Massimo
Puedes ver / guardar el historial ejecutando doskey.exe /history (de ahí también proviene el acceso directo de F7, por cierto) pero no hay forma de volver a cargarlo en su próxima sesión. - Coderer


Massimo tiene razón en que el historial de la línea de comandos no persiste en las sesiones. Usted podría agarrar esto manualmente antes de cerrar su indicador tecleando doskey / historia> historia.txt

O ... podrías usar Potencia Shell como su indicador de CMD, y siga esta publicación para persistir su historia a través de sesiones.


14
2017-12-17 19:52





Puedes usar tintinar.

Clink combina el shell de Windows nativo cmd.exe con las potentes funciones de edición de la línea de comandos de la biblioteca GNU Readline, que proporciona funciones completas de finalización, historial y edición de líneas.

La forma más fácil de instalar clink es usando chocolate. Una vez que instales chocolatey, puedes instalar clink escribiendo

choco install clink

A partir de la próxima vez que inicie cmd.exe, debería almacenar el historial en todas las sesiones.


10
2017-08-14 06:37



Finalmente decidió dar Chocolatey Un disparo por este post. La instalación fue tan fácil como de brew en macOS. ¡Y ahora tengo un indicador de comandos tipo Bash en Windows! - TranslucentCloud


Es posible guardar el historial actual en el archivo,

`$ doskey /history > somefile.txt`

Pero parece que no hay manera de volver a cargarlo como historia. Solo es posible utilizar un argumento de línea de comando para cargar y ejecutar todas las líneas,

cmd.exe /K somefile.txt

, lo que puede ser útil para cargar una lista de macros de doskey. Esta invocación podría incluirse en un acceso directo para que no tenga que escribirla cada vez; Esta referencia tiene alguna información adicional sobre este enfoque..

Hay una pregunta similar en superusuario que traen algunas alternativas, incluyendo tintinar, según lo sugerido por @RobertBak.


6
2018-03-23 13:15



Hmm, para volver a cargarlo en la historia, ¿no deberías simplemente guardarlo en un archivo .bat y ejecutarlo? - Pacerier
Seguramente, @Pacerier ejecutando los comandos nuevamente los incluiría en la historia, pero probablemente tendría grandes efectos secundarios. Imagina que eliminas algunos archivos a través del shell y luego los vuelves a crear fuera del shell a través de un proceso largo y doloroso. La recarga del historial a través de su procedimiento eliminaría inesperadamente los archivos nuevamente. - mMontu
@Pacerier te das cuenta de que "ejecutarlo" significa ejecutar todos esos comandos, ¿verdad? No se trata simplemente de cargarlos en la historia, sino de permitir que tengan algunos efectos en su sistema. - ADTC


Historial de comandos:     Para habilitar un historial de comandos (al que se puede acceder usando los botones     teclas de flecha hacia abajo) simplemente ejecute doskey en el comando     rápido. Por ejemplo, para crear un historial de comandos de 100 elementos:

doskey /listsize=100

árbitro:https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php


1
2018-02-14 13:08



Eso no responde a la pregunta en absoluto? - Chopper3
No funciona en Windows 10. - TranslucentCloud