2012-03-03 1 views
9

Sono consapevole che si può fareC'è un modo per salvare automaticamente la cronologia dei comandi in un file in cmd.exe, simile a bash_history?

doskey /history 

per salvare la cronologia dei comandi in un particolare momento, ma mi chiedo se c'è un modo per risparmiare in modo proattivo la cronologia dei comandi in un file, come i comandi vengono emessi .

Una volta chiuso il prompt dei comandi, la cronologia viene persa, quindi è facile chiudere accidentalmente un prompt dei comandi una volta terminato.

mi piacerebbe essere in grado di dire qualcosa del tipo:

log Commands.log 

e quindi emettere i miei comandamenti, ed hanno i comandi essere salvati Commands.log.

risposta

6

Si potrebbe creare una macro DOSKEY per rimappare il comando EXIT, come segue:

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

Questo sarebbe accodare il contenuto della cronologia dei comandi in un file denominato "c: \ temp \ commands.log" ogni quando esci dal prompt digitando "exit".

ATTENZIONE: non ho ancora testato i potenziali effetti collaterali di utilizzo di questo con i parametri "/ B ExitCode" di uscita, ma non ci dovrebbe essere alcun dato che si sta catturando i parametri con "$ 1 $ 2" in ogni caso.

Questo non fa esattamente quello che stai cercando, ma cattura la cronologia dei comandi fintanto che esci usando EXIT (contro la chiusura della finestra).

Maggiori informazioni e campioni sul macro DOSKEY sono qui: http://technet.microsoft.com/en-us/library/bb490894.aspx

+0

Il comando funziona bene, ma è necessario specificare una directory che già esiste - non creerà le directory per voi. Da quello che posso dire è che questa macro dura solo durante la sessione dos attuale. Quindi dovresti digitare questo ogni volta che apri il prompt dei comandi. – icc97

+1

Se si crea un collegamento con il seguente target: '% windir% \ system32 \ cmd.exe/K doskey exit = doskey/history $ g $ g% USERPROFILE% \ commands.log $ texit $ 1 $ 2' questo a) segue l'unix concetto di salvarlo nella tua directory home, b) questo comando viene eseguito quando si esegue questa scorciatoia in modo da non doverlo digitare ogni volta – icc97