(Windows 终端)如何在运行 doskey 宏文件命令时停止当前工作目录的双重打印?

(Windows 终端)如何在运行 doskey 宏文件命令时停止当前工作目录的双重打印?

我已经按照以下说明通过 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一次发送多个命令。)

相关内容