Question Existe-t-il un historique global et persistant de CMD?


Parfois, j'oublie à quoi ressemble la syntaxe exacte d'une commande CMD et j'aimerais ensuite effectuer une recherche dans mon propre historique CMD. Il est clair que vous pouvez parcourir la même session avec les flèches haut et bas, mais qu'en est-il de l'historique des sessions CMD antérieures? Existe-t-il un fichier, un journal dans lequel l'historique est écrit ou est-ce que tout va au numérique Nirvana?

Merci!


81
2017-12-17 18:06


origine


Vous pouvez pirater la commande exit pour enregistrer automatiquement un journal avant de quitter: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $* mais vous devrez savoir comment exécuter cela automatiquement à chaque démarrage de session d'invite de commande. PS: Assurez-vous que le chemin du fichier journal est accessible en écriture. C:\  n'est pas accessible en écriture pour une invite de commande non-admin. - ADTC
@ADTC: AutoRun devrait gérer 'chaque démarrage': superuser.com/a/302553/333316 ou stackoverflow.com/a/17405182/2868801 - dave_thompson_085


Réponses:


Pas nativement mais vérifiez: http://mridgers.github.io/clink/ , rend cmd.exe beaucoup plus productif. Citant les caractéristiques de la page du projet:

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



Clink a tout résolu - Still.Tony
Avez-vous l'intention de l'inclure par défaut dans Windows? :RÉ - Jaime Hablutzel
Pouvez-vous définir un ~/.inputrc quand on utilise le tintement? (et savez-vous s'il peut être utilisé console ou quoi que ce soit?) - Mike H-R
Apparemment, voir la doc github.com/mridgers/clink/blob/master/docs/clink.md. - Baris Demiray
... sauf les alias. clink déteste doskey; Oubliez tous vos pseudonymes longs et soigneusement attribués. c'est pourquoi j'ai arrêté de l'utiliser. bien que toutes les fonctionnalités me manquent. - w17t


Non, l'historique des invites de commande Windows ne peut pas être enregistré à la fin d'une session.


19
2017-12-17 18:11



pour de vrai? comment sais-tu cela? Désolé de vous avoir interrogé, je suppose que vous avez raison, mais comment pouvez-vous savoir à moins d’avoir programmé cette fichue chose;) - raoulsson
Ok, permettez-moi de reformuler :-) L'interpréteur de commandes Windows ("cmd.exe") ne fournit aucun support pour l'enregistrement / l'exportation / la conservation de l'historique. Si tel est le cas, Microsoft ne l'a pas documenté et personne n'a jamais pu le faire. pour le trouver. Vous pouvez bien sûr essayer de contourner ce problème, comme l'a suggéré Sean, mais il n'y a (ou semble ne pas l'être) un support intégré pour cela. - Massimo
Vous pouvez appuyer sur F7 pour voir l’historique de la session en cours. - jftuga
ACTUEL session est le mot clé ici. - Massimo
Vous pouvez voir / sauvegarder l'historique en lançant doskey.exe /history (c'est aussi de là que vient le raccourci F7, BTW), mais il n'y a aucun moyen de le recharger lors de votre prochaine session. - Coderer


Massimo a raison de dire que l'historique des invites de commande ne persiste pas d'une session à l'autre. Vous pouvez le saisir manuellement avant de fermer votre invite en tapant doskey / history> history.txt

Ou ... tu pourrais utiliser PowerShell comme invite de votre CMD, et suivez ce post pour conserver votre historique au cours des sessions.


14
2017-12-17 19:52





Vous pouvez utiliser choquer.

Clink associe le shell Windows natif cmd.exe aux puissantes fonctions d'édition en ligne de commande de la bibliothèque GNU Readline, qui offre des fonctionnalités avancées de complétion, d'historique et d'édition de ligne.

Le moyen le plus simple d'installer clink est d'utiliser chocolaté. Une fois que vous avez installé Chocolatey, vous pouvez installer Clink en tapant

choco install clink

À partir de la prochaine fois que vous lancerez cmd.exe, celui-ci devrait stocker l'historique des sessions.


10
2017-08-14 06:37



Finalement décidé de donner Chocolatey un coup à cause de ce post. L'installation était aussi facile que de brew dans macOS. Et maintenant, j'ai une invite de commande semblable à Bash dans Windows! - TranslucentCloud


Il est possible de sauvegarder l'historique actuel dans un fichier,

`$ doskey /history > somefile.txt`

Mais il semble qu'il n'y ait aucun moyen de le charger en tant qu'histoire. Il est possible d'utiliser uniquement un argument de ligne de commande pour charger et exécuter toutes les lignes,

cmd.exe /K somefile.txt

, ce qui peut être utile pour charger une liste de macros doskey. Cette invocation peut être incluse dans un raccourci afin que vous n'ayez pas besoin de la saisir à chaque fois; cette référence a quelques informations supplémentaires sur cette approche.

Il y a une question similaire sur superutilisateur qui apportent des alternatives, y compris choquer, comme suggéré par @RobertBak.


6
2018-03-23 13:15



Hmm, pour le réintégrer dans l'historique, ne devez-vous pas simplement l'enregistrer dans un fichier .bat et l'exécuter? - Pacerier
@Pacerier exécuter à nouveau les commandes les inclurait sûrement dans l'historique, mais cela aurait probablement des effets secondaires importants. Imaginez que vous supprimiez certains fichiers à travers le shell, puis que vous les recréiez hors du shell à travers un processus long et pénible. Le rechargement de l'historique par le biais de votre procédure supprimerait à nouveau les fichiers de manière inattendue - mMontu
@ Pacerier, vous réalisez que "l'exécuter" signifie l'exécution de toutes ces commandes, n'est-ce pas? Il ne s'agit pas simplement de les charger dans l'histoire, mais de les laisser avoir des effets sur votre système. - ADTC


Historique des commandes:     Pour activer l’historique des commandes (accessible à l’aide des touches haut et bas)     touches fléchées vers le bas) exécutez simplement doskey à la commande     rapide. Par exemple, pour créer un historique de commandes de 100 éléments:

doskey /listsize=100

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


1
2018-02-14 13:08



Cela ne répond pas du tout à la question ?? - Chopper3
Ne fonctionne pas sur Windows 10. - TranslucentCloud