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 缩写为 /m。 |
/macros:all | 显示 所有可执行文件的 doskey 宏。 |
/macros:<exename> |
显示 exename 指定的可执行文件的 doskey 宏。 |
/history | 显示存储在内存中的所有命令。 可以将重定向符号 () > > 一起用于将列表重定向到文件。 可以将 / history 缩写为 /h。 |
/insert | 指定在旧文本中插入键入的新文本。 |
/overstrike | 指定新文本覆盖旧文本。 |
/exename=<exename> |
指定运行 doskey (的可执行文件) 的可执行文件。 |
/macrofile=<filename> |
指定包含要安装的宏的文件。 |
<macroname> =[<text> ] |
创建一个宏,该宏执行 Text 指定的 命令。 MacroName 指定要分配给宏的名称。 文本 指定要记录的命令。 如果 "文本 "留空, 则 MacroName 将清除任何分配的命令。 |
/? | 在命令提示符下显示帮助。 |
注解
某些基于字符的交互式程序(如程序调试器或文件传输程序 (FTP) 自动Doskey.exe。 若要Doskey.exe,程序必须是控制台进程并使用缓冲输入。 程序密钥分配替代 doskey 密钥分配。 例如,如果程序对函数使用 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
重定向输出。 使用这两个特殊字符将输出发送到设备或文件而不是屏幕。 此字符等效于 output ( >
) 的重定向符号。$G$G
或$g$g
将输出追加到文件末尾。 使用这两个双字符将输出追加到现有文件,而不是替换文件中的数据。 这些双字符等效于 output ( >>
) 的追加重定向符号。$L
或$l
重定向输入。 使用上述任一特殊字符可以从设备或文件而不是键盘读取输入。 此字符等效于输入 ( <
) 的重定向符号。$B
或$b
将宏输出发送到命令。 这些特殊字符等效于使用管道 (
和*
。$T
或$t
分隔命令。 在 doskey 命令行上创建宏或类型命令时,可使用以下任一特殊字符分隔命令。 这些特殊字符等效于在命令行上使用与号 ( &
) 。$$
指定 ( $
) 的货币符号字符。$1
周一至$9
表示运行宏时要指定的任何命令行信息。 使用的特殊字符 $1
$9
是批处理参数,可让你在每次运行宏时在命令行上使用不同的数据。$1
命令中的$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 选项时,你可以在宏的末尾使用 $*
将其他命令行选项追加到 $*
。
以下宏对新目录名称使用 batch 参数:
doskey mc=md $1$tcd $1
宏创建一个新目录,然后从当前目录更改到新目录。
若要使用上述宏创建并更改到名为 书籍的目录,请键入:
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和 再见 命令。
若要创建快速、无条件地格式化磁盘的宏,请键入:
doskey qf=format $1 /q /u
若要快速而无条件地格式化驱动器 A 中的磁盘,请键入:
qf a:
若要删除名为 vlist的宏,请键入:
doskey vlist =