グローバルで永続的なCMD履歴はありますか?


99

CMDコマンドの正確な構文がどのように見えるかを忘れてしまい、自分のCMD履歴を検索したい場合があります。明らかに、同じセッション内で上下の矢印キーを使用して閲覧できますが、以前のCMDセッションの履歴はどうですか?ファイル、履歴が書き込まれるログ、またはすべてデジタルニルヴァーナに送信されるログはありますか?

ありがとう!


exitコマンドを乗っ取って、終了する前にログを自動的に保存doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $*できます。ただし、コマンドプロンプトセッションの各起動時にこれを自動的に実行する方法を理解する必要があります。PS:ログファイルのパスが書き込み可能であることを確認してください。C:\ 管理者以外のコマンドプロンプトに対しては書き込みできません。
ADTC

@ADTC:AutoRunは「各スタートアップ」を処理する必要がありますsuperuser.com/a/302553/333316またはstackoverflow.com/a/17405182/2868801
dave_thompson_085

回答:


30

いいえ、Windowsコマンドプロンプトの履歴は、セッションの終了時に保存できません。


3
実際に?どうやってこれを知っていますか?あなたに質問して申し訳ありませんが、あなたは正しいと思いますが、あなたがいまいましいことをプログラムしない限り、どうやって知ることができます;)
raoulsson 09

7
わかりました、言い直してください:-) Windowsコマンドインタープリター( "cmd.exe")は、履歴の保存/エクスポート/保持をサポートしていません。それを見つけるために。もちろん、Seanが示唆したように、それを回避することはできますが、これに対する組み込みのサポートはありません(またはそうではないようです)。
マッシモ

18
F7を押すと、現在のセッションの履歴リストを表示できます。
jftuga

4
ここでは、CURRENTセッションがキーワードです。
マッシモ

3
実行することで履歴を表示/保存できますdoskey.exe /history(F7ショートカットの由来です)。ただし、次のセッションで履歴を読み込む方法はありません。
コーデラー

68

ネイティブではありませんが、チェックアウト:http : //mridgers.github.io/clink/、cmd.exeの生産性を大幅に向上させます。プロジェクトページからの引用機能:

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.

3
clinkは

5
Windowsにデフォルトで含める予定はありますか?:D
ハイメハブルツェル

~/.inputrcclinkを使用するときにaを設定できますか?(そして、コンソールか何かを使用できるかどうか知っていますか?)
マイクHR

どうやら、ドキュメントgithub.com/mridgers/clink/blob/master/docs/clink.mdをご覧ください。
バリスデミレイ

...エイリアスを除く。clink嫌いdoskey; 長年にわたって慎重に割り当てられたエイリアスをすべて忘れてください。それが私がそれを使うのをやめた理由です。私はすべての機能が恋しいですが。

15

Massimoは、コマンドプロンプト履歴がセッション間で保持されないことを認識しています。doskey / history> history.txtと入力して、プロンプトを閉じる前にこれを手動で取得できます

または... PowerShellをCMDプロンプトとして使用し、この投稿に従ってセッション間で履歴を保持できます。


11

clinkを使用できます。

Clinkは、ネイティブのWindowsシェルcmd.exeを、GNU Readlineライブラリの強力なコマンドライン編集機能と組み合わせて、充実した補完、履歴、および行編集機能を提供します。

clinkをインストールする最も簡単な方法はchocolateyを使用することです。chocolateyをインストールしたら、次のように入力してclinkをインストールできます。

choco install clink

次回cmd.exeを起動したときから、セッション全体の履歴を保存する必要があります。


Chocolateyこの投稿のため、最終的にショットを与えることにしました。インストールはbrewmacOSと同じくらい簡単でした。そして今、私はWindowsでBashのようなコマンドプロンプトを持っています!
TranslucentCloud

6

現在の履歴をファイルに保存することは可能ですが、

`$ doskey /history > somefile.txt`

しかし、それを履歴としてロードする方法はないようです。コマンドライン引数を使用してすべての行をロードおよび実行することのみが可能です。

cmd.exe /K somefile.txt

、doskeyマクロのリストをロードするのに役立つことがあります。この呼び出しはショートカットに含めることができるため、毎回入力する必要はありません。この参照には、このアプローチに関する追加情報があります。

同様の質問があり、スーパーユーザーに含めていくつかの選択肢、持参チャリンという音が @RobertBakにより示唆されるように、。


うーん、それを履歴にロードするために、単に.batファイルに保存して実行する必要はないでしょうか?
Pacerier

1
@Pacerierが再度コマンドを実行すると、それらは履歴に確実に含まれますが、大きな副作用が生じる可能性があります。シェルを介していくつかのファイルを削除してから、長くて苦しいプロセスを経てシェルの外でファイルを再作成するとします。プロシージャを介して履歴を再ロードすると、ファイルが予期せず再び削除されます。
mMontu

「実行」することに気付いた@Pacerierは、これらすべてのコマンドを実行することを意味しますか?単に履歴にロードするだけでなく、実際にシステムに何らかの影響を与えます。
ADTC

1

コマンド履歴:コマンド履歴(上下の矢印キーを使用してアクセスできる)を有効にするには、コマンドプロンプトでdoskeyを実行します。たとえば、100要素のコマンド履歴を作成するには:

doskey /listsize=100

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


3
それはまったく質問に答えませんか?
Chopper3

1
Windows 10では動作しません
。– TranslucentCloud

1

clinkは素晴らしく、著者はリリースごとにチョコレートのパッケージを公開していますが、DeepBlueCLIをお勧めします。

https://github.com/sans-blue-team/DeepBlueCLIを使用して、WindowsセキュリティイベントID 4688をセットアップできます。

PowerShellの場合、DeepBlueCLIはモジュールログ(PowerShellイベント4013)とスクリプトブロックログ(4104)も使用します。転写を使用しません。

追加の利点は、コマンドラインexeのハッシュをAppLockerイベントログに記録することです。ソース:https : //docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

また、このソリューションはWindowsイベントログインフラストラクチャを使用しているため、WMIまたはPowerShellを介してクエリを実行できますGet-EventLog。clinkでは、システム全体またはネットワーク全体の動作パターンを検出するために、別のツールを学習する必要があります。


1
イベント4688がキーであり、それはWindowsが実行されたすべてのコマンドを記録する方法の中央ストアです。他のすべてのツールは、このイベントを探して読んでいます。ありがとう。:しかし、デフォルトでは有効ではありません itprotoday.com/strategy/...を
ピーターTeohさん
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.