Vraag Bestaat er een wereldwijde, persistente CMD-geschiedenis?


Soms vergeet ik hoe de exacte syntaxis van een CMD-opdracht eruitziet en dan zou ik mijn eigen CMD-geschiedenis willen doorzoeken. Het is duidelijk dat u binnen dezelfde sessie kunt bladeren met de pijltoetsen omhoog en omlaag, maar hoe zit het met de geschiedenis van eerdere CMD-sessies? Is er een bestand, een logboek waarin de geschiedenis wordt geschreven of gaat het allemaal naar het digitale Nirvana?

Bedankt!


81
2017-12-17 18:06


oorsprong


U kunt de opdracht exit kapen om automatisch een logboek op te slaan voordat u afsluit: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $* maar u zult moeten uitzoeken hoe dit automatisch moet worden uitgevoerd bij elke opstartpromptsessie. PS: Zorg ervoor dat het pad van het logbestand schrijfbaar is. C:\  is niet beschrijfbaar voor een opdrachtprompt zonder beheerder. - ADTC
@ADTC: AutoRun moet 'elke startup' afhandelen: superuser.com/a/302553/333316 of stackoverflow.com/a/17405182/2868801 - dave_thompson_085


antwoorden:


Niet standaard maar uitchecken: http://mridgers.github.io/clink/ , maakt cmd.exe veel productiever. Functies citeren van de projectpagina:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.

59
2018-03-13 08:24



klink alles opgelost - Still.Tony
Zijn er plannen om het standaard in Windows op te nemen? : D - Jaime Hablutzel
Kun je een instellen ~/.inputrc bij het gebruik van clink? (en weet u of het een console of iets anders kan zijn?) - Mike H-R
Blijkbaar zie het document github.com/mridgers/clink/blob/master/docs/clink.md. - Baris Demiray
... behalve aliassen. clink haat doskey; vergeet al je jarenlange en zorgvuldig toegewezen aliassen. daarom ben ik gestopt om het te gebruiken. hoewel ik alle functies mis. - w17t


Nee, Windows-opdrachtpromptgeschiedenis kan niet worden opgeslagen wanneer een sessie eindigt.


19
2017-12-17 18:11



echt? hoe weet je dit? Sorry dat ik je ondervraag, ik denk dat je gelijk hebt, maar hoe kan je dat weten, tenzij je het verdomde ding programmeerde;) - raoulsson
Ok, laat me herformuleren :-) De Windows-opdrachtinterpreter ("cmd.exe") biedt geen ondersteuning voor het opslaan / exporteren / bewaren van geschiedenis, of, als dat zo is, heeft Microsoft het niet gedocumenteerd en niemand was ooit in staat om het te vinden. Je kunt natuurlijk proberen dat te omzeilen, zoals Sean suggereerde, maar er is (of lijkt dat te zijn) geen ingebouwde ondersteuning hiervoor. - Massimo
U kunt op F7 drukken om een ​​geschiedenislijst van de huidige sessie te bekijken. - jftuga
STROOM sessie is hier het sleutelwoord. - Massimo
Je kunt de geschiedenis zien / opslaan door te draaien doskey.exe /history (dat is ook waar de F7-snelkoppeling vandaan komt, BTW) maar er is geen manier om het in je volgende sessie terug te laden. - Coderer


Massimo heeft gelijk dat de geschiedenis van de opdrachtprompt niet blijft bestaan ​​tussen de sessies. Je zou dit handmatig kunnen grijpen voordat je je prompt sluit door te typen doskey / history> history.txt

Of ... je zou kunnen gebruiken PowerShell als je CMD-prompt en volg deze post om uw geschiedenis tijdens sessies te behouden.


14
2017-12-17 19:52





Je kunt gebruiken klinken.

Clink combineert de oorspronkelijke Windows-shell cmd.exe met de krachtige bewerkingsfuncties voor opdrachtregels van de GNU Readline-bibliotheek, die uitgebreide voltooiings-, geschiedenis- en lijnbewerkingsmogelijkheden biedt.

De eenvoudigste manier om clink te installeren, is het gebruik van chocolatey. Zodra je chocolatey hebt geïnstalleerd, kun je clink installeren door te typen

choco install clink

Vanaf de volgende keer dat u cmd.exe start, moet de geschiedenis worden opgeslagen in alle sessies.


10
2017-08-14 06:37



Uiteindelijk besloten om te geven Chocolatey een schot vanwege dit bericht. Installatie was zo eenvoudig als van brew in macOS. En nu heb ik een Bash-achtige commandoregel in Windows! - TranslucentCloud


Het is mogelijk om de huidige geschiedenis op te slaan,

`$ doskey /history > somefile.txt`

Maar het lijkt erop dat er geen manier is om het terug te laden als geschiedenis. Het is mogelijk om alleen een commandoregelargument te gebruiken om alle regels te laden en uit te voeren,

cmd.exe /K somefile.txt

, wat handig kan zijn om een ​​lijst met doskey-macro's te laden. Deze aanroep kan in een snelkoppeling worden opgenomen, zodat u deze niet telkens hoeft te typen; deze referentie bevat aanvullende informatie over deze aanpak.

Er is een vergelijkbare vraag op Superuser dat brengt een aantal alternatieven, waaronder klinken, zoals voorgesteld door @RobertBak.


6
2018-03-23 13:15



Hmm, om het terug in de geschiedenis te laden, zou je het niet gewoon in een .bat-bestand moeten opslaan en uitvoeren? - Pacerier
@Pacerier het opnieuw uitvoeren van de opdrachten zou ze zeker in de geschiedenis opnemen, maar het zou waarschijnlijk grote bijwerkingen hebben. Stel je voor dat je een aantal bestanden verwijdert via de shell en ze vervolgens buiten de shell opnieuw maakt via een lang en pijnlijk proces. Als u de geschiedenis opnieuw laadt via uw procedure, worden de bestanden onverwacht opnieuw verwijderd. - mMontu
@Pacerier u realiseert zich dat "het uitvoeren" betekent dat u al die opdrachten uitvoert, toch? Het laadt ze niet simpelweg in de geschiedenis, maar laat ze eigenlijk een aantal effecten hebben op je systeem. - ADTC


Commandogeschiedenis:     Om een ​​opdrachthistorie in te schakelen (die toegankelijk is via de knoppen omhoog en     pijltjestoetsen) voer gewoon de doskey uit bij de opdracht     prompt. Als u bijvoorbeeld een opdrachtgeschiedenis van 100 elementen wilt maken:

doskey /listsize=100

ref:https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php


1
2018-02-14 13:08



Dat geeft helemaal geen antwoord op de vraag ?? - Chopper3
Werkt niet op Windows 10. - TranslucentCloud