web-dev-qa-db-fra.com

Y a-t-il un historique CMD global et persistant?

Parfois, j'oublie à quoi ressemble la syntaxe exacte d'une commande CMD, puis je voudrais rechercher mon propre historique CMD. De toute évidence, dans la même session, vous pouvez le parcourir avec les touches fléchées haut et bas, mais qu'en est-il de l'historique des anciennes sessions CMD? Existe-t-il un fichier, un journal dans lequel l'historique est écrit ou est-ce que tout va au Nirvana numérique?

Merci!

105
raoulsson

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

35
Massimo

Pas nativement mais vérifiez: http://mridgers.github.io/clink/ , rend cmd.exe beaucoup plus productif. Citant des fonctionnalités 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.
68
Robert Bak

Massimo a raison de dire que votre historique d'invite de commandes ne persiste pas entre les sessions. Vous pouvez saisir manuellement ceci avant de fermer votre invite en tapant doskey/history> history.txt

Ou ... vous pouvez utiliser PowerShell comme invite CMD, et suivre ce post pour conserver votre historique à travers les sessions.

15
Sean Earp

Vous pouvez utiliser clink.

Clink combine le shell Windows natif cmd.exe avec les puissantes fonctionnalités d'édition en ligne de commande de la bibliothèque de lecture GNU, qui fournit des fonctionnalités complètes de complétion, d'historique et d'édition de ligne.

La façon la plus simple d'installer clink est d'utiliser chocolatey . Une fois que vous avez installé chocolatey, vous pouvez installer clink en tapant

choco install clink

À partir du prochain démarrage de cmd.exe, il devrait stocker l'historique des sessions.

11
Joji Antony

Il est possible d'enregistrer l'historique actuel dans un fichier,

`$ doskey /history > somefile.txt`

Mais il semble qu'il n'y ait aucun moyen de le recharger en tant qu'histoire. Il n'est possible d'utiliser qu'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, vous n'avez donc pas besoin de la saisir à chaque fois; cette référence contient des informations supplémentaires sur cette approche .

Il y a une question similaire sur Superuser qui apporte quelques alternatives, y compris clink , comme suggéré par @RobertBak.

7
mMontu

Historique des commandes: pour activer un historique des commandes (accessible à l'aide des touches fléchées haut et bas), il suffit d'exécuter doskey à l'invite de commande. Par exemple, pour créer un historique de commandes de 100 éléments:

doskey /listsize=100

réf: https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php

1
Moataz AL Dawood

clink est Nice et l'auteur publie un paquet chocolaté sur chaque version, mais je suggère DeepBlueCLI.

Vous pouvez utiliser https://github.com/sans-blue-team/DeepBlueCLI pour configurer l'ID d'événement de sécurité Windows 4688.

Pour PowerShell, DeepBlueCLI utilise également la journalisation des modules (événement PowerShell 4013) et la journalisation des blocs de script (4104). Il n'utilise pas de transcription.

L'avantage supplémentaire est qu'il enregistre le hachage de l'exe de ligne de commande dans le journal des événements AppLocker. Source: https://docs.Microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

De plus, comme cette solution utilise l'infrastructure du journal des événements Windows, vous pouvez l'interroger via WMI ou PowerShell Get-EventLog. Avec clink, vous devez apprendre un autre outil afin de détecter les modèles de comportement à l'échelle du système ou du réseau.

1
John Zabroski