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 运行 openmget再见 命令。

若要创建快速、无条件地格式化磁盘的宏,请键入:

doskey qf=format $1 /q /u

若要快速而无条件地格式化驱动器 A 中的磁盘,请键入:

qf a:

若要删除名为 vlist的宏,请键入:

doskey vlist =

其他参考