セッション間でcmdコマンド履歴を保持する方法はありますか?
セッション間でcmdコマンド履歴を保持する方法はありますか?
回答:
PowerShellの使用に切り替え、次のサイトの指示に従って履歴を有効にします。
または、cmd.exeでは、セッションの最後に「doskey / history」を使用して、そのセッションで入力した内容を表示できますが、実際に次のセッションに読み込む方法はありません。
2つの方法を見つけましたが、どちらもPowerShellに切り替える必要はありません。
cmd.exe
感じていますが、それは良い答えであり、clinkは注入モードもサポートしています。
cmd
それに置き換えられ、問題はありませんでした、非常に満足しています。
履歴の保存は小さなワークフローです-これを行うための「重い」方法はここにあります(外部ライブラリはありません)。
bat / cmdファイルを作成して履歴を設定します。この場合、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
次に、これを「スタート」->「実行」から実行します(このエイリアスも設定できます)。
cmd.exe /K C:\MyEnvironment.cmd
セッションを閉じるたびに「終了」を押すか、セッション中に履歴を失うことを恐れている場合は「保存」を押します。履歴内の何かをgrepしたい場合は、「history KEYWORD」を押すだけです。
@ dave_thompson_085のコメントによるとAutoRun
、/K
スイッチを使用したくない場合、この機能はうまく機能します。レジストリキーを正しく設定した場合、.cmd
またはにある.bat
必要はありません%AppData%
。既にある場所にあることができます。
%AppData%
場所を使用する場合は、cmdが(AppDataルートではなく) "Roaming"フォルダーでバッチファイルを検索する可能性があることに注意してください。
AutoRun
CMD機能の詳細:https : //superuser.com/a/302553/333316
$g
挿入し>
、$t
コマンド区切り文字です。
doskey quit=doskey /history
マクロ作成の出力を実行し、ログファイルに保存します(何もまたはエラーメッセージがありません)。次にウィンドウを閉じます(すべてを破棄します)。- ^
代わりに、これらの文字をエスケープすることもできます、と思います。同様に^>^>
して^&
(...はい、あなただけの1つのアンパサンドが必要)