2012-03-03 19 views
9

Soy consciente de que uno puede hacer¿Hay alguna forma de guardar automáticamente el historial de comandos en un archivo en cmd.exe, similar al bash_history de bash?

doskey /history 

para guardar el historial de comandos en un punto determinado en el tiempo, pero me pregunto si hay una manera de ahorrar de forma proactiva historial de comandos en un archivo, ya que los comandos se emiten .

Una vez que se cierra un símbolo del sistema, se pierde el historial, por lo que es fácil cerrar accidentalmente un símbolo del sistema cuando se hace uno.

Me gustaría poder decir algo como:

log Commands.log 

y luego emitir mis órdenes, y tienen los comandos pueden guardar en Commands.log.

Respuesta

6

Se puede crear una macro doskey para volver a asignar el comando EXIT, de la siguiente manera:

doskey exit=doskey/history$g$gc:\temp\commands.log$texit $1 $2 

Esto sería añadir el contenido de su historial de comandos en un archivo denominado "c: \ temp \ commands.log" cada uno hora de salir de la indicación escribiendo "salir".

PRECAUCIÓN: No he probado los posibles efectos secundarios del uso de este con los parámetros "A/B" EXITCODE de salida, pero no debería haber ninguna ya que está capturando los parámetros con "$ 1 $ 2" de todos modos.

Esto no hace exactamente lo que está buscando, pero captura su historial de comandos siempre que salga utilizando EXIT (frente a simplemente cerrar la ventana).

Más información y muestras en las macros DOSKEY está aquí: http://technet.microsoft.com/en-us/library/bb490894.aspx

+0

El comando funciona bien, pero hay que especificar un directorio que ya existe - no va a crear los directorios para usted. Por lo que puedo decir es que esta macro solo dura durante la sesión actual de dos. Debería escribir esto cada vez que abra el símbolo del sistema. – icc97

+1

Si crea un atajo con el siguiente destino: '% windir% \ system32 \ cmd.exe/K doskey exit = doskey/history $ g $ g% USERPROFILE% \ commands.log $ texit $ 1 $ 2' esto a) sigue al unix concepto de guardarlo en su directorio de inicio, b) este comando se ejecuta cuando ejecuta este atajo para que no tenga que escribirlo cada vez – icc97

Cuestiones relacionadas