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


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.


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.


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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.