Share via


doskey

呼叫 Doskey.exe,它會回收先前輸入的命令列命令、編輯命令列,以及建立巨集。

語法

doskey [/reinstall] [/listsize=<size>] [/macros:[all | <exename>] [/history] [/insert | /overstrike] [/exename=<exename>] [/macrofile=<filename>] [<macroname>=[<text>]]

參數

參數 描述
/reinstall 安裝新的 Doskey.exe 複本,並清除命令歷程記錄緩衝區。
/listsize=<size> 指定歷程記錄緩衝區中的命令數目上限。
/macros 顯示所有 doskey 巨集的清單。 您可以使用重新導向符號 (>) 搭配 /macros,將清單重新導向至檔案。 您可以將 /macros 縮寫為 /m
/macros:all 顯示所有可執行檔的 doskey 巨集。
/macros:<exename> 顯示 exename 所指定可執行檔的 doskey 巨集。
/history 顯示儲存在記憶體中的所有命令。 您可以使用重新導向符號 (>) 搭配 /history,將清單重新導向至檔案。 您可以將 /history 縮寫為 /h
/insert 指定將輸入的新文字插入舊文字中。
/overstrike 指定新文字會覆寫舊文字。
/exename=<exename> 指定執行 doskey 巨集的程式 (也就是可執行檔)。
/macrofile=<filename> 指定包含要安裝的巨集檔案。
<macroname>=[<text>] 建立執行 Text 所指定命令的巨集。 MacroName 會指定要指派給巨集的名稱。 Text 會指定要記錄的命令。 如果 Text 保留空白,則 MacroName 會清除任何指派的命令。
/? 在命令提示字元顯示說明。

備註

  • 特定字元型互動式程式 (例如:程式偵錯工具或檔案傳輸程式 (FTP) 會自動使用 Doskey.exe。 若要使用 Doskey.exe,程式必須是主控台程序,並使用緩衝輸入。 程式按鍵指派會覆寫 doskey 按鍵指派。 例如,如果程式使用 F7 鍵執行某個功能,則無法在彈出視窗中取得 doskey 命令歷程記錄。

  • 您可以使用 Doskey.exe 來編輯目前的命令列,但不能使用程式命令提示字元中的命令列選項。 啟動程式之前,您必須先執行 doskey 命令列選項。 如果您在程式中使用 Doskey.exe,則程式的按鍵指派優先,而且某些 Doskey.exe 編輯按鍵可能無法運作。

  • 透過 Doskey.exe,您可以維護啟動或重複的每個程式的命令歷程記錄。 您可以在程式的提示字元中編輯先前的命令,並啟動為程式建立的 doskey 巨集。 如果您從相同命令提示字元視窗退出並重新啟動程式,則會使用上一個程式工作階段中的命令歷程記錄。

  • 若要重新叫用命令,您可以在啟動 Doskey.exe 之後使用下列任一按鍵:

    關鍵 描述
    向上鍵 重新叫用您在顯示的命令之前使用過的命令。
    DOWN ARROW 重新叫用您在顯示的命令之後使用過的命令。
    PAGE UP 重新叫用您在目前工作階段中使用的第一個命令。
    PAGE DOWN 重新叫用您在目前工作階段中使用的最新命令。
  • 下表列出 doskey 編輯按鍵及其功能:

    按鍵或按鍵組合 描述
    向左鍵 將插入點向後移動一個字元。
    向右鍵 將插入點向前移動一個字元。
    CTRL+向左鍵 將插入點向後移動一個字。
    CTRL+向右鍵 將插入點向前移動一個字。
    HOME 移動插入點至行的開頭。
    END 移動插入點至行的結尾。
    ESC 從顯示器清除命令。
    F1 從範本中的資料行將一個字元複製到命令提示字元視窗中的同一行。 (此範本是一個記憶體緩衝區,其中包含您輸入的最後一個命令。)
    F2 在範本中向前搜尋您在按下 F2 之後輸入的下一個按鍵。 Doskey.exe 會從範本插入文字,但不包含您指定的字元。
    F3 將範本的其餘部分複製到命令列。 Doskey.exe 開始從範本中與命令列上插入點指示的位置相對應的位置複製字元。
    F4 刪除從目前插入點位置 (但不包含) 到按下 F4 之後輸入的下一個字元之間的所有字元。
    F5 將範本複製到目前的命令列。
    F6 在目前插入點位置放置一個檔案結尾字元 (CTRL+Z)。
    F7 顯示 (在對話方塊中) 此程式儲存在記憶體中的所有命令。 使用向上鍵和向下鍵來選取您想要的命令,然後按 ENTER 來執行命令。 您也可以記下命令前面的序號,並將此序號搭配 F9 鍵使用。
    ALT+F7 刪除目前歷程記錄緩衝區內存中儲存的所有命令。
    F8 顯示歷程記錄緩衝區中以目前命令中的字元開頭的所有命令。
    F9 提示您輸入歷程記錄緩衝區命令編號,然後顯示與您指定的編號相關聯的命令。 按 Enter 鍵以執行命令。 若要顯示所有編號及其相關聯的命令,請按 F7。
    ALT+F10 刪除所有巨集定義。
  • 如果按下 INSERT 鍵,則可以在現有文字中輸入 doskey 命令列上的文字,而不用替換文字。 不過,按下 ENTER 之後,Doskey.exe 會將鍵盤返回取代模式。 您必須再次按 INSERT,才能返回插入模式。

  • 當您使用 INSERT 鍵從某個模式變更為另一個模式時,插入點的形狀會變更。

  • 如果您想要自訂 Doskey.exe 與程式搭配使用的方式,並為該程式建立 doskey 巨集,您可以建立可修改 Doskey.exe 並啟動程式的批次程式。

  • 您可以使用 Doskey.exe 來建立執行一或多個命令的巨集。 下表列出您可以在定義巨集時用來控制命令作業的特殊字元。

    字元 描述
    $G$g 重新導向輸出。 使用這其中一個特殊字元,將輸出傳送至裝置或檔案,而不是傳送到畫面。 此字元相當於輸出的重新導向符號 (>)。
    $G$G$g$g 將輸出附加至檔案的結尾。 使用這兩個雙字元的其中一個,將輸出附加至現有的檔案,而不是替換檔案中的資料。 這些雙字元相當於輸出的附加重新導向符號 (>>)。
    $L$l 重新導向輸入。 使用這其中一個特殊字元,從裝置或檔案讀取輸入,而不是從鍵盤讀取輸入。 此字元相當於輸入的重新導向符號 (<)。
    $B$b 將巨集輸出傳送至命令。 這些特殊字元相當於使用管道 (*
    $T$t 分隔命令。 當您在 doskey 命令列上建立巨集或輸入命令時,請使用這其中一個特殊字元來分隔命令。 這些特殊字元相當於在命令列上使用 ampersand (&)。
    $$ 指定貨幣符號字元 ($)。
    $1$9 代表在執行巨集時指定的任何命令列資訊。 特殊字元 $1$9 是批次參數,使您能夠在每次執行巨集時在命令列上使用不同的資料。 doskey 命令中的 $1 字元類似於批次程式中的 %1 字元。
    $* 代表輸入巨集名稱時要指定的所有命令列資訊。 特殊字元 $* 是可替換的參數,與批次參數 $1$9 類似,但有一個重要區別:在巨集名稱後的命令列中輸入的所有內容都將替換為巨集中的 $*
  • 若要執行巨集,請在命令提示字元中從第一個位置開始輸入巨集名稱。 如果巨集是使用 $* 或任何批次參數 $1$9 定義的,請使用空格分隔參數。 您無法從批次程式執行 doskey 巨集。

  • 如果您一律使用具有特定命令列選項的特定命令,則可以建立與該命令同名的巨集。 若要指定要執行巨集或命令,請遵循下列指導方針:

    • 若要執行巨集,請在命令提示字元中輸入巨集名稱。 請勿在巨集名稱之前加入空格。

    • 若要執行命令,請在命令提示字元中插入一或多個空格,然後輸入命令名稱。

範例

/macros/history 命令列選項很適合用來建立批次程式來儲存巨集和命令。 例如,若要儲存所有目前的 doskey 巨集,請輸入:

doskey /macros > macinit

若要使用儲存在 Macinit 中的巨集,請輸入:

doskey /macrofile=macinit

若要建立包含最近使用的命令且名為 Tmp.bat 的批次程式,請輸入:

doskey /history> tmp.bat

若要使用多個命令來定義巨集,請使用 $t 來分隔命令,如下所示:

doskey tx=cd temp$tdir/w $*

在上述範例中,TX 巨集會將目前目錄變更為 Temp,然後以寬顯示格式顯示目錄清單。 當您執行 tx 選項時,您可以在巨集結尾使用 $* 將其他命令列選項附加到 dir 中。

以下巨集使用批次參數作為新目錄名稱:

doskey mc=md $1$tcd $1

巨集會建立新的目錄,然後從目前目錄變更至新目錄。

若要使用上述巨集來建立和變更名為 Books 的目錄,請輸入:

mc books

若要為名為 Ftp.exe 的程式建立 doskey 巨集,請包含 /exename,如下所示:

doskey /exename=ftp.exe go=open 172.27.1.100$tmget *.TXT c:\reports$tbye

若要使用上述巨集,請啟動 FTP。 在 FTP 提示字元中,輸入:

go

FTP 會執行 openmgetbye 命令。

若要建立可快速且無條件地格式化磁碟的巨集,請輸入:

doskey qf=format $1 /q /u

若要快速且無條件地格式化磁碟機 A 中的磁碟,請輸入:

qf a:

若要刪除名為 vlist 的巨集,請輸入:

doskey vlist =