我已经按照以下说明通过 doskey 宏文件设置了永久 doskey这个答案。但是,如果我使用那里列出的命令,它会双重打印当前工作目录(顶部终端)。
这似乎与 $T 有关,因为当宏文件仅包含 1 个 doskey 别名(如图底部终端所示)时它可以正常工作。
我该如何解决?
答案1
上一个线程不正确,并且$T
令牌不应在宏的末尾使用。它充当命令分隔符之内单个 DOSKEY 宏定义;不作为多个定义之间的分隔符。(常规换行符就足够了。)
DOSKEY 宏的工作原理是在实际程序 (Cmd) 看到输入之前对其进行转换。$T
宏中的每个输入都将成为扩展输出中的换行符 (Enter ↵按键)。例如,如果您输入e Hello!
:
- 宏
e=echo $*
生成;echo Hello!↵
- 宏
e=echo $* $T
生成;echo Hello! ↵↵
- 宏
e=echo $* $T echo Bye!
生成。echo Hello! ↵ echo Bye!↵
(当然,在为 Cmd 制作 DOSKEY 宏时,您可以使用普通的&
或&&
作为命令分隔符。但是,这在其他交互式程序中不可用 - DOSKEY 是一个通用功能,可用于为 Netsh 或 MySQL 交互式客户端等工具创建别名。其中一些只允许每行一个命令,因此 DOSKEY 宏需要$T
一次发送多个命令。)