doskey
调用 Doskey.exe,可调用以前输入的命令行命令、编辑命令行和创建宏。
语法
doskey [/reinstall] [/listsize=<size>] [/macros:[all | <exename>] [/history] [/insert | /overstrike] [/exename=<exename>] [/macrofile=<filename>] [<macroname>=[<text>]]
parameters
参数 | 说明 |
---|---|
/安装 | 安装Doskey.exe的新副本并清除命令历史记录缓冲区。 |
/listsize=<size> |
指定历史记录缓冲区中命令的最大数目。 |
/宏 | 显示所有 doskey 宏的列表。 可以将重定向符号 (> ) 与 /macros 一起使用,将列表重定向到文件。 可以将 /macros 缩写为 /m。 |
/macros:all | 显示所有可执行文件的 doskey 宏。 |
/宏:<exename> |
显示 exename 指定的可执行文件的 doskey 宏。 |
/历史 | 显示存储在内存中的所有命令。 可以将重定向符号 (> ) 与 /history 一起使用,将列表重定向到文件。 可以将 /history 缩写为 /h。 |
/插入 | 指定在旧文本中插入你键入的新文本。 |
/overstrike | 指定新文本覆盖旧文本。 |
/exename=<exename> |
指定程序 (,即运行 doskey 宏的可执行) 。 |
/macrofile=<filename> |
指定包含要安装的宏的文件。 |
<macroname> =[<text> ] |
创建执行 Text 指定的命令的宏。 MacroName 指定要分配给宏的名称。 Text 指定要记录的命令。 如果 Text 留空,则会清除任何分配的命令 的 MacroName 。 |
/? | 在命令提示符下显示帮助。 |
注解
某些基于字符的交互式程序(如程序调试程序或文件传输程序) (FTP) 自动使用Doskey.exe。 若要使用Doskey.exe,程序必须是控制台进程并使用缓冲输入。 程序键分配会替代 doskey Key 分配。 例如,如果程序对函数使用 F7 键,则无法在弹出窗口中获取 doskey 命令历史记录。
可以使用 Doskey.exe 编辑当前命令行,但不能使用程序的命令提示符中的命令行选项。 在启动程序之前,必须运行 doskey 命令行选项。 如果在某个程序中使用Doskey.exe,则该程序的键分配优先,并且某些Doskey.exe编辑键可能无法正常工作。
使用Doskey.exe,可以维护启动或重复的每个程序的命令历史记录。 可以在程序的提示符下编辑以前的命令,并启动为程序创建的 doskey 宏。 如果退出然后从同一命令提示符窗口重新启动程序,则上一个程序会话的命令历史记录可用。
若要撤回命令,可以在启动Doskey.exe后使用以下任意密钥:
键 说明 向上键 回忆起在显示的命令之前使用的命令。 向下键 回想在显示的命令之后使用的命令。 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 命令行上创建宏或键入命令时,请使用这些特殊字符之一来分隔命令。 这些特殊字符等效于在命令行上使用和 ( &
) 。$$
指定) ( $
美元符号字符。$1
到$9
表示运行宏时要指定的任何命令行信息。 通过 $9
的特殊字符$1
是批处理参数,使你能够在每次运行宏时在命令行上使用不同的数据。$1
doskey 命令中的字符类似于批处理程序中的%1
字符。$*
表示键入宏名称时要指定的所有命令行信息。 特殊字符 $*
是一个可替换参数,类似于 通过$9
的批处理参数$1
,但有一个重要区别:在宏名称替换为$*
宏中的 之后,在命令行上键入的所有内容。若要运行宏,请在命令提示符处键入宏名称,从第一个位置开始。 如果宏是使用
$*
$9
或通过 定义任何批处理参数$1
的,请使用空格分隔参数。 不能从批处理程序运行 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 运行 open、 mget 和 bye 命令。
若要创建快速且无条件地格式化磁盘的宏,请键入:
doskey qf=format $1 /q /u
若要在驱动器 A 中快速且无条件地格式化磁盘,请键入:
qf a:
若要删除名为 vlist 的宏,请键入:
doskey vlist =