2012-03-03 7 views
9

Zdaję sobie sprawę, że można zrobićCzy istnieje sposób automatycznego zapisywania historii poleceń do pliku w cmd.exe, podobnego do bash_history?

doskey /history 

zapisać historię poleceń w danym momencie, ale zastanawiam się, czy jest jakiś sposób, aby aktywnie zapisywać historię poleceń do pliku jako polecenia są wydawane .

Po zamknięciu wiersza polecenia historia zostaje utracona, więc można łatwo zamknąć przypadkowo wiersz polecenia po zakończeniu wiersza polecenia.

Chciałbym móc powiedzieć coś takiego:

log Commands.log 

a następnie wydać moje polecenia i komendy mają być zapisywane Commands.log.

Odpowiedz

6

Można by utworzyć makro polecenia doskey do przemapować polecenie EXIT, co następuje:

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

Byłoby dołączyć zawartość historii poleceń w pliku o nazwie „c: \ temp \ commands.log” każdy czas, w którym opuścisz monit, wpisując "exit".

UWAGA: nie testowałem potencjalne skutki uboczne stosowania tego parametry „/ B exitCode” exit, ale nie powinno być żadnych ponieważ jesteś uchwycenie parametrów z „$ 1 $ 2” i tak.

To nie robi dokładnie tego, czego szukasz, ale przechwytuje historię poleceń, dopóki zamykasz za pomocą EXIT (a po prostu zamykasz okno).

Więcej informacji oraz próbki na makr DOSKEY tutaj: http://technet.microsoft.com/en-us/library/bb490894.aspx

+0

Komenda działa dobrze, ale trzeba określić katalog, który już istnieje - to nie będzie tworzyć katalogi dla Ciebie. Z tego co mogę powiedzieć, to to makro trwa tylko podczas bieżącej sesji. Musisz więc wpisać to za każdym razem, gdy otworzysz wiersz poleceń. – icc97

+1

Jeśli utworzysz skrót z następującym obiektem docelowym: '% windir% \ system32 \ cmd.exe/K doskey exit = doskey/history $ g $ g% USERPROFILE% \ commands.log $ texit $ 1 $ 2' this a) podąża za uniksem koncepcja zapisania go w katalogu domowym, b) to polecenie jest uruchamiane po uruchomieniu tego skrótu, aby nie trzeba było go wpisywać za każdym razem – icc97