it-swarm-pt.tech

Existe uma história global persistente de CMD?

Às vezes, esqueço a aparência da sintaxe exata de um comando CMD e gostaria de pesquisar meu próprio histórico de CMD. Claramente, na mesma sessão, você pode navegar com as teclas de seta para cima e para baixo, mas e o histórico de sessões anteriores de CMD? Existe um arquivo, um registro no qual o histórico é gravado ou tudo isso vai para o Nirvana digital?

Obrigado!

105
raoulsson

Não, o histórico do prompt de comando do Windows não pode ser salvo quando uma sessão termina.

35
Massimo

Não nativamente, mas confira: http://mridgers.github.io/clink/ , torna o cmd.exe muito mais produtivo. Citando recursos da página do projeto:

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 está correto, pois o histórico do prompt de comando não persiste nas sessões. Você pode pegar isso manualmente antes de fechar o prompt digitando doskey/history> history.txt

Ou ... você pode usar PowerShell como seu prompt do CMD e seguir esta postagem para manter seu histórico nas sessões.

15
Sean Earp

Você pode usar clink.

O Clink combina o Windows Shell cmd.exe nativo com os poderosos recursos de edição de linha de comando da biblioteca Readline GNU), que fornece recursos avançados de conclusão, histórico e edição de linha.

A maneira mais fácil de instalar o clink é usando chocolatey . Depois de instalar o chocolatey, você pode instalar o clink digitando

choco install clink

A partir da próxima vez que você iniciar o cmd.exe, ele deverá armazenar o histórico entre as sessões.

11
Joji Antony

É possível salvar o histórico atual em um arquivo,

`$ doskey /history > somefile.txt`

Mas parece que não há como carregá-lo de volta como história. Só é possível usar um argumento de linha de comando para carregar e executar todas as linhas,

cmd.exe /K somefile.txt

, o que pode ser útil para carregar uma lista de macros doskey. Essa invocação pode ser incluída em um atalho para que você não precise digitá-la sempre; esta referência tem algumas informações adicionais sobre essa abordagem .

Existe uma pergunta semelhante no Superusuário que traz algumas alternativas, incluindo clink , conforme sugerido por @RobertBak.

7
mMontu

Histórico de comandos: para ativar um histórico de comandos (que pode ser acessado usando as teclas de seta para cima e para baixo), basta executar o doskey no prompt de comando. Por exemplo, para criar um histórico de comandos com 100 elementos:

doskey /listsize=100

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

1
Moataz AL Dawood

clink is Nice e o autor publica um pacote com chocolate em cada versão, no entanto, sugiro o DeepBlueCLI.

Você pode usar https://github.com/sans-blue-team/DeepBlueCLI para configurar o Windows Security Event ID 4688.

Para o PowerShell, o DeepBlueCLI também usa o log de módulo (evento 4013 do PowerShell) e o log de bloco de script (4104). Não usa transcrição.

O benefício adicional é que ele registra o hash da linha de comando exe no log de eventos do AppLocker. Fonte: https://docs.Microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

Além disso, como esta solução usa a infraestrutura do Log de Eventos do Windows, você pode consultá-la através do WMI ou do PowerShell Get-EventLog. Com o clink, você precisa aprender outra ferramenta para detectar padrões de comportamento em toda a rede ou sistema.

1
John Zabroski