[AHK#32] 讓多個cmd.exe共用命令歷史的變通作法(跨Session共用)

命令提示字元的執行歷史無法跨Session

每一個命令提示字元(cmd.exe)都是獨立的執行實例(Instance),有什麼辦法把第一個cmd.exe裡的命令歷史傳遞到另一個cmd.exe?

下面是變動的方法。

1. 取得並儲存執行歷史

取得cmd.exe執行歷史的命令:

doskey /history > c:\temp\_hist.cmd

/history可以使用/h取代。

我們可以建立快速查詢執行歷史的代名或批次:

▼ 代名

doskey h=doskey /h

接著用 hsave.bat 來儲存命令歷史與目前資料夾:

@echo off
doskey /history > c:\temp\_hist.cmd
echo %CD% | clip

2. 重新載入執行歷史

建立 hload.bat:

@echo off
chcp 65001
type c:\temp\_hist.cmd | fzf --tac | clip
clip_run.ahk

fzf的使用方法請參考:

fzf預設會被輸入倒著排列,用--tac則可取消倒排的作法。

clip_cd.ahk由系統剪貼簿取得在fzf裡選用的內容,處理後重新輸出給cmd.exe執行。

此個作法也適用於同一個cmd.exe,不過,其實按F7就有內建的選單可以用了!

批次檔原始碼

連結

解說影片

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *