Przechowywać historię poleceń cmd.exe między sesjami?

75

Czy istnieje sposób na przechowywanie historii poleceń cmd między sesjami?

fuzja ognia
źródło

Odpowiedzi:

22

Przejdź do programu PowerShell i postępuj zgodnie z instrukcjami w następującej witrynie, aby włączyć historię:

http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx

Alternatywnie, w cmd.exe możesz użyć „doskey / history” na końcu sesji, aby pokazać, co wpisałeś w tej sesji, ale nie ma sposobu, aby naprawdę załadować ją do następnej sesji.

Hippy
źródło
6
Zawahałem się dać +1, ponieważ „Przełącz na używanie PowerShell” niekoniecznie jest tak łatwe, jak się wydaje, w zależności od rodzaju rzeczy, z których korzystasz z konsoli, ale informacje są dokładne, soooooooooo;)
Shinrai
2
Zgoda. Zawahałem się, żeby to odłożyć, ale to jedyna prawdziwa odpowiedź, jaką mogę znaleźć. Próbowałem uzyskać coś podobnego na stacji roboczej, którą miałem wcześniej, ale po prostu nie ma trwałego mechanizmu historii dla cmd.exe :-(
Hyppy
Zauważ, że zachowa to listę wpisanych poleceń, ale NIE zmieni to listy poleceń, które pojawią się po naciśnięciu klawisza w górę na klawiaturze. Innymi słowy, nie wpływa to na funkcjonalność „doskey”.
Mark
Należy zauważyć, że niektóre polecenia działające w cmd nie działają tak samo w programie PowerShell, np. Mvn install `-Dmaven.test.skip = true wymagałby backsticka, jak pokazano przed myślnikiem
Drenai
62

Znalazłem 2 sposoby, z których żaden nie wymaga przejścia do PowerShell.

  1. Zainstaluj Clink , który rozszerza się cmd.exeo trwałą historię i wiele więcej. Wystarczy zainstalować, a następnie otworzyć cmdjak zwykle.

  2. Zainstaluj darmową wersję TCC / LE , która jest osobnym programem, ponownie zapewniając ulepszoną wersję cmd.exe.

wróbel
źródło
5
Jestem trochę zaniepokojony wymianą całego systemu, cmd.exeale to dobra odpowiedź, a brzęk obsługuje również tryb wstrzykiwania.
Lorenz Lo Sauer
4
Wow, Clink jest fantastyczny.
Chris Weber
4
Clink jest genialny. Zastąpiony cmdnim, nie ma problemów, bardzo z niego zadowolony.
Pułkownik Panic
2
Clink jest niesamowity!
Hoang Huynh
3
To powinna być zaakceptowana odpowiedź. Bo o to pyta pytanie !! Jest to najlepsze rozwiązanie zamiast korzystania z innych alternatywnych aplikacji.
Samitha Chathuranga
12

Zapisywanie historii to niewielki przepływ pracy - oto mniej „ciężki” sposób na to (bez zewnętrznych bibliotek).

Utwórz plik bat / cmd, aby skonfigurować swoją historię, w tym przypadku nazwałem go 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

Następnie uruchom to z „Start-> Uruchom” (możesz również ustawić dla tego alias):

cmd.exe /K C:\MyEnvironment.cmd

Za każdym razem, gdy zamykam sesję, uderzam „wyjdź” - lub jeśli boję się utraty historii w trakcie sesji, wciskam „zapisz”. Jeśli chcę szukać czegoś w historii, po prostu nacisnąłem „KEYWORD historii”.


Według komentarza @ dave_thompson_085 AutoRunfunkcja działa dobrze, jeśli nie chcesz używać /Kprzełącznika. Jeśli klucz rejestru został poprawnie skonfigurowany, ikona .cmdlub .batnie musi być w %AppData%nim, może znajdować się w tej samej lokalizacji, w której już się znajduje.

Jeśli korzystasz z %AppData%lokalizacji, pamiętaj, że cmd prawdopodobnie będzie szukał pliku wsadowego w folderze „Roaming” (zamiast katalogu głównego AppData).

Więcej informacji na temat AutoRunfunkcji CMD: https://superuser.com/a/302553/333316

Coruscate5
źródło
Po co $gi $tpo co?
@ Chinggis6 $gwstawia a >i $tjest separatorem poleceń.
Superole,
@Superole ah ok, g reater than and t erminate, ale dlaczego nie używać znaków >i &&znaków bezpośrednio w aliasie doskey?
@ Chinggis6, ponieważ spowodowałoby to uszkodzenie polecenia tworzącego alias. Następnie interpreter poleceń założyłby, że miałeś na myśli: najpierw uruchom doskey quit=doskey /historyi zapisz wynik tworzenia makra w pliku dziennika (albo nic, albo błąd); następnie zamknij okno (odrzucając wszystko). - ^Myślę, że możesz uciec przed tymi postaciami . Lubię ^>^>i ^&(... i tak, potrzebujesz tylko jednego
znaku handlowego
1
Zamiast jawnego /kmożna użyć AutoRun superuser.com/a/302553/333316
dave_thompson_085
2

Używam cygwina . Zapewnia także kilka innych funkcji, które ma Linux, ale Windows nie.

Harun
źródło