106 votes

Conserver l'historique des commandes cmd.exe entre les sessions ?

Existe-t-il un moyen de conserver l'historique des commandes cmd entre les sessions ?

92voto

sparrowt Points 2233

J'ai trouvé 2 moyens, dont aucun ne nécessite de passer à PowerShell.

  1. Installer Clink qui améliore cmd.exe avec une histoire persistante et bien plus encore. Il suffit de l'installer et d'ouvrir cmd comme d'habitude.

  2. Installer TCC/LE la version gratuite, qui est un programme distinct, fournissant à nouveau une version améliorée de l'outil de gestion de l'information. cmd.exe .

27voto

Ketil Points 51

Passez à l'utilisation de PowerShell, et suivez les instructions du site suivant pour activer l'historique :

https://devblogs.microsoft.com/powershell/perserving-command-history-across-sessions/ ( archivé )

Par ailleurs, dans cmd.exe, vous pouvez utiliser "doskey /history" à la fin de votre session pour afficher ce que vous avez tapé dans cette session, mais il n'y a aucun moyen de le charger réellement dans la session suivante.

17voto

Coruscate5 Points 934

La sauvegarde de l'historique est un petit travail - voici une façon moins "lourde" de le faire (sans librairie externe).

Créez un fichier bat/cmd pour configurer votre historique, dans ce cas je l'ai appelé 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

Ensuite, exécutez-la à partir de "Démarrer->Exécuter" (vous pouvez également créer un alias pour cela) :

cmd.exe /K C:\MyEnvironment.cmd

Chaque fois que je ferme une session, j'appuie sur "quit" - ou si j'ai peur de perdre l'historique au milieu de la session, j'appuie sur "save". Si je veux rechercher quelque chose dans l'historique, j'appuie simplement sur "history KEYWORD".


D'après le commentaire de @dave_thompson_085, les AutoRun fonctionne bien si vous ne souhaitez pas utiliser la fonction /K un interrupteur. Si vous configurez correctement la clé de registre, l'option .cmd o .bat n'a pas besoin d'être dans %AppData% il peut être au même endroit qu'il l'est déjà.

Si vous utilisez le %AppData% mais sachez que cmd cherchera probablement votre fichier batch dans le dossier "Roaming" (au lieu de la racine AppData).

Plus d'informations sur le AutoRun Fonction CMD : https://superuser.com/a/302553/333316

Mise à jour (oct. 2020) sur Autorun : J'utilise cette fonction depuis des années maintenant, mais je tiens à signaler que de nombreux programmes qui s'appuient sur CMD pour exécuter des commandes en arrière-plan (Visual Studio, applications Win32), obtiennent très confus si quelque chose s'exécute avant la commande CMD passée (par exemple l'invite du développeur VS). Si cela pose problème, passez à l'option /K méthode.

3voto

Harun Points 129

J'utilise cygwin . Il fournit également d'autres fonctionnalités que Linux possède mais pas Windows.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X