轉自:https://blog.csdn.net/u012993732/article/details/48626921shell
調用 Doskey.exe,它撤回 Windows XP 命令、編輯命令行並建立宏。spa
doskey {/reinstall | /listsize=size | /macros:[{all | exename}] | /history | /insert | /overstrike | /exename=exename | /macrofile=FileName | macroname=[text]}.net
Doskey.exe 對全部基於字符的、交互式程序(例如程序調試程序或文件傳送程序)老是可用的,併爲每一個啓動的程序維護命令歷史緩衝區和宏。不能從某個程序中直接使用 doskey 命令行。啓動程序以前必須運行 doskey 命令行選項。程序按鍵分配忽略 doskey 按鍵分配。命令行
要撤回命令,能夠在啓動 Doskey.exe 以後使用以下任意鍵。若是在某程序內使用 Doskey.exe,則該程序的鍵值優先。調試
鍵 | 說明 |
---|---|
向上箭 | 撤回在顯示以前使用的命令。 |
向下箭 | 撤回在顯示以後使用的命令。 |
PAGE UP | 撤回當前會話中使用最先的命令。 |
PAGE DOWN | 撤回最近使用的命令。 |
經過 Doskey.exe,能夠編輯當前命令行。若是在程序中使用 Doskey.exe,則該程序的鍵值優先,而且有些 Doskey.exe 的編輯按鍵可能不能正常工做。orm
下表列出 doskey 編輯按鍵及其功能。blog
按鍵或按鍵組合 | 說明 |
---|---|
向左鍵 | 將插入點向後移動一個字符。 |
向右鍵 | 將插入點向前移動一個字符。 |
CTRL+向左鍵 | 將插入點向後移動一個字。 |
CTRL+向右鍵 | 將插入點向前移動一個字。 |
HOME | 將插入點移動到行首。 |
END | 將插入點移動到行尾。 |
Esc | 清除顯示的命令。 |
F1 | 將模板中相同欄目的字符複製到命令提示符窗口中的相同欄目中。(模板是指保存上一次鍵入命令的內存緩衝區。 |
F2 | 按下 F2 後在模板中向前搜索鍵入的下一個按鍵。Doskey.exe 從模板插入文本直到(但不包含)指定的字符。 |
F3 | 將模板的剩餘部分複製到命令行。Doskey.exe 從模板上與命令行上插入點所代表的位置相對應的位置開始複製字符。 |
F4 | 刪除從當前插入點位置到指定字符的全部字符。要使用該編輯按鍵,請按 F4 並鍵入字符。Doskey.exe 刪除從當前插入點位置到指定的第一個字母間的字符。 |
F5 | 將模板複製到當前命令行。 |
F6 | 在當前插入點位置放置文件結束符(即,CTRL+Z)。 |
F7 | 在彈出框中顯示存儲在內存中程序的全部命令。使用向上箭頭鍵和向下箭頭鍵選擇須要的命令,而後按 ENTER 運行命令。也能夠在命令前標註序列號,並將該號碼與 F9 鍵一塊兒使用。 |
ALT+F7 | 刪除保存在歷史記錄緩衝區內存中的全部命令。 |
F8 | 顯示用當前命令中字符開始的歷史緩衝區中的全部命令。 |
F9 | 提示您輸入歷史緩衝命令號,而後顯示與您指定的號碼相關聯的命令。按 ENTER 運行命令。要顯示全部號碼及相關的命令,請按 F7。 |
ALT+F10 | 刪除全部宏定義。 |
某些基於字符的交互式程序(例如,程序調試程序或文件傳輸程序 (FTP))自動使用 Doskey.exe。要使用 Doskey.exe,程序必須是控制檯進程並使用緩衝輸入。程序按鍵分配忽略 doskey 按鍵分配。例如,若是該程序使用 F7 鍵執行某項功能,您就沒法在彈出式窗口中得到 doskey 命令歷史。進程
經過 Doskey.exe,能夠維護所啓動的每一個程序的命令歷史,在程序的提示符窗口中重複和編輯之前的命令,以及啓動爲該程序建立的 doskey 宏。若是退出並從同一命令提示符窗口從新啓動程序,那麼之前程序會話中的命令歷史是可用的。內存
啓動程序以前必須運行 Doskey.exe。即便程序有 shell 命令,也不能從程序命令提示符使用 Doskey 命令。ci
若是要自定義 Doskey.exe 如何配合程序工做,併爲該程序建立 doskey 宏,能夠建立修改 Doskey.exe 並啓動程序的批處理程序。
按 INSERT 鍵,就能夠在舊文本中間的 Doskey 命令行上鍵入文本而不替換舊文本。可是,在按下 ENTER 後,Doskey.exe 將鍵盤返回到替換模式。必須再次按 INSERT 返回到插入模式。
當按下 ENTER 時,使用 /insert 使鍵盤處於插入模式。在使用 /overstrike 以前,鍵盤將有效地保留在插入模式。按 INSERT 鍵能夠臨時返回到替換模式;可是在按 ENTER 後,Doskey.exe 將使鍵盤返回到插入模式。
當使用 INSERT 鍵從一種模式改到另外一種模式時插入點更改形狀。
可使用 Doskey.exe 建立執行一個或多個命令的宏。下表列出定義宏時可用來控制命令操做的特殊字符。
字符 | 說明 |
---|---|
$G 或 $g | 重定向輸出。使用任意特殊字符將輸出發送到設備或文件而不是發送到屏幕。該字符與輸出的重定向符號 (<) 等價。 |
$G$G 或 $g$g | 將輸出附加到文件結尾。使用特殊雙字符將輸出附加到現有文件而不是替換文件中的日期。這些雙重字符與輸出的附加劇定向符號 (>>) 等價。 |
$B 或 $b | 重定向輸入。使用任意特殊字符從設備或文件而不是從鍵盤讀取輸入。該字符與輸入的重定向符號 (<) 等價。 |
$B 或 $b | 將宏輸出發送給命令。這些特殊字符與使用命令行上的管道字符 (|) 等價。 |
$T 或 $t | 分隔命令。建立宏或在 Doskey 命令行上鍵入命令時使用任一特殊字符分隔命令。這些特殊字符與使用命令行上的 & (即「與」)等價。 |
$$ | 指定美圓符號字符 ($)。 |
$1 到 $9 | 表明運行宏時要指定的任何命令行信息。特殊字符 $1 到 $9 是批處理參數,它可能使您每次運行宏時在命令行上使用不一樣的數據。doskey 命令中的 「 字符相似於批處理程序中的 %1 字符。 |
$* | 表明鍵入宏名稱時要指定的全部命令行信息。特殊字符 $* 是可替換參數,這與批處理參數 「到 $9 類似,但有一個重要的差別。此處,在宏名後命令行上鍵入的全部內容替換宏中的 $*。 |
要運行宏,請在命令行的開始位置鍵入宏名。若是使用 $* 或任何批處理參數 $1 到 $9 定義了宏,請使用空格來分隔參數。不能從批處理程序運行 doskey 宏。
若是老是經過特定命令行選項使用某個命令,則能夠建立具備與該命令相同名稱的宏。要指定是否要運行宏或該命令,請遵循如下指導原則:
要刪除宏,請鍵入:
doskey macroname=
/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 10.127.1.100$tmget *.TXT c:\reports$bye
要使用之前的宏,請啓動 ftp。在 ftp 提示符下,鍵入:
go
Ftp 將執行 open、mget 及 bye 命令。
要建立執行快速而無條件的磁盤格式的宏,請鍵入:
doskey qf=format $1 /q /u
要快速而無條件地格式化驅動器 A中的磁盤,請鍵入:
qf a