转自:https://blog.csdn.net/u012993732/article/details/48626921
调用 Doskey.exe,它撤回 Windows XP 命令、编辑命令行并创建宏。
MS-DOS命令语法
doskey {/reinstall | /listsize=size | /macros:[{all | exename}] | /history | /insert | /overstrike | /exename=exename | /macrofile=FileName | macroname=[text]}
MS-DOS命令参数
- /reinstall
- 安装 Doskey.exe 的新副本。清除命令历史缓冲区。
- /listsize=size
- 指定历史缓冲区中的最多命令数。
- /macros
- 显示所有 Doskey 宏的列表。可以使用带有 /macros 的重定向符 (>) 将列表重定向到文件。可以将 /macros 缩写为 /m。
- all
- 显示所有可执行程序的 doskey 宏。
- exename
- 显示指定的可执行程序的 doskey 宏。
- /history
- 显示存储在内存中的所有命令。可以使用带有 /history 的重定向符 (>) 将列表重定向到文件。可以将 /history 缩写为 /h。
- {/insert | /overstrike}
- 指定键入的新文本是否要替换旧文本。如果使用 /insert,在行上键入的新文本被插入到旧文本中(就象您已经按下 INSERT 键一样)。如果使用 /overstrike,新文本替代旧文本。默认设置为 /overstrike。
- /exename=exename
- 指定运行 doskey 宏的程序(即,可执行程序)。
- /macrofile=FileName
- 指定包含要安装宏的文件。
- macroname=[text]
- 创建执行由 text 指定的命令的宏。Macroname 指定要指派给宏的名称。Text 指定要记录的命令。如果 text 保留为空,macroname 将清除所有指派的命令。
- /?
- 在命令提示符显示帮助。
MS-DOS命令注释
- 使用 Doskey.exe
Doskey.exe 对所有基于字符的、交互式程序(例如程序调试程序或文件传送程序)总是可用的,并为每个启动的程序维护命令历史缓冲区和宏。不能从某个程序中直接使用 doskey 命令行。启动程序之前必须运行 doskey 命令行选项。程序按键分配忽略 doskey 按键分配。
- 撤回命令
要撤回命令,可以在启动 Doskey.exe 之后使用如下任意键。如果在某程序内使用 Doskey.exe,则该程序的键值优先。
键 说明 向上箭 撤回在显示之前使用的命令。 向下箭 撤回在显示之后使用的命令。 PAGE UP 撤回当前会话中使用最早的命令。 PAGE DOWN 撤回最近使用的命令。 - 编辑命令行
通过 Doskey.exe,可以编辑当前命令行。如果在程序中使用 Doskey.exe,则该程序的键值优先,并且有些 Doskey.exe 的编辑按键可能不能正常工作。
下表列出 doskey 编辑按键及其功能。
按键或按键组合 说明 向左键 将插入点向后移动一个字符。 向右键 将插入点向前移动一个字符。 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 删除所有宏定义。 - 在程序中使用 Doskey
某些基于字符的交互式程序(例如,程序调试程序或文件传输程序 (FTP))自动使用 Doskey.exe。要使用 Doskey.exe,程序必须是控制台进程并使用缓冲输入。程序按键分配忽略 doskey 按键分配。例如,如果该程序使用 F7 键执行某项功能,您就无法在弹出式窗口中获得 doskey 命令历史。
通过 Doskey.exe,可以维护所启动的每个程序的命令历史,在程序的提示符窗口中重复和编辑以前的命令,以及启动为该程序创建的 doskey 宏。如果退出并从同一命令提示符窗口重新启动程序,那么以前程序会话中的命令历史是可用的。
启动程序之前必须运行 Doskey.exe。即使程序有 shell 命令,也不能从程序命令提示符使用 Doskey 命令。
如果要自定义 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 相似,但有一个重要的差异。此处,在宏名后命令行上键入的所有内容替换宏中的 $*。 - 运行 doskey 宏
要运行宏,请在命令行的开始位置键入宏名。如果使用 $* 或任何批处理参数 $1 到 $9 定义了宏,请使用空格来分隔参数。不能从批处理程序运行 doskey 宏。
- 创建与 Windows XP 命令同名的宏
如果总是通过特定命令行选项使用某个命令,则可以创建具有与该命令相同名称的宏。要指定是否要运行宏或该命令,请遵循以下指导原则:
- 要运行宏,在命令提示符后立即键入宏,在提示符和命令名之间没有空格。
- 要运行命令,请在命令提示符和命令名间插入一个或多个空格。
- 删除宏
要删除宏,请键入:
doskey macroname=
MS-DOS命令范例
/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