【问题标题】:Preserving doskey context after pipe, or, and在管道之后保留 doskey 上下文,或者,和
【发布时间】:2019-02-12 14:49:51
【问题描述】:

我有多个按以下方式定义的 doskey:

doskey ll=dir $*
doskey grep=findstr $*
doskey make=mingw32-make $*

我想在一行命令中结合使用它们,例如:

ll | grep my_folder

make && make install

但是在第一个管道/非/和运算符之后,doskeys 似乎不再存在,因为 cmd 无法识别命令。例如,虽然单个 make 命令有效,但调用 echo hello && make 会告诉我 make 未被识别为命令。

有没有办法保留 doskey 上下文,以便我可以将它们链接在一起,如上所述?

另外,同样的问题也适用于使用 doskeys 运行批处理文件,有没有办法也保留上下文?

我听说过 doskey 的 $T 参数,但我不太确定我是否理解它。

提前感谢您的帮助

【问题讨论】:

  • DOSKEY 仅用于交互使用。它不适用于批处理文件脚本。 stackoverflow.com/questions/36616151/…
  • 这看起来很有效,但它有点违背了短命令的意义。 ll | cmd.exe /C findstr "new"
  • @lit 感谢您对批处理文件的澄清,但是使用重定向到新的 cmd 实例并不能解决任何问题,因为新执行的 cmd 不会继承 doskey 设置

标签: cmd environment doskey


【解决方案1】:

我遇到了类似的问题...
以下宏未处理 | 字符之后的部分:

doskey system=systeminfo | findstr /C:"OS"

但是,以下是:

doskey system=systeminfo $B findstr /C:"OS"

所以,看起来 doskey 的管道符号是 $B。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多