转自: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