如何使用 ConEmu 中的 GuiMacro Shell 将 %CD% 传递给应用程序

如何使用 ConEmu 中的 GuiMacro Shell 将 %CD% 传递给应用程序

Shell 上的文档不是很清楚,也许我搞糊涂了。

  1. 如何将 %CD% 作为参数传递给我正在运行的命令?
  2. 第一个参数到底是什么?“open”、“print”等等是什么意思?第二个例子中的“”,“”是什么意思。

具体来说,我感兴趣的是运行如下命令:

Shell("open","explorer","%CD%")

但这并不完全有效。explorer可以打开,但不能使用 CD。文档的最后示例确实有效:

Shell("new_console:Ibn","cmd","/k start explorer \"%CD%\" && exit")

这很令人困惑。为什么这个有效,而另一个无效?

我正在使用版本 161022(撰写本文时最新版本)。

谢谢,

答案1

ShellShellExecute WinAPI 函数. 因此open,和其他与函数的参数print含义相同。lpOperation

或者,第一个 Shell 的论点接受 ConEmu 内部new_console 开关,不带前导破折号。

接下来,ConEmu 在执行函数时不会将变量名称扩展为其值Shell。您可以使用以下命令轻松检查这一点进程探索器通过执行cmd而不是explorer。例如:

Shell("open","cmd","%CD%")

当您运行Shell("open",...)ConEmu 时,它不会继承环境。但是当您指定new_console:I而不是 时open,它会继承环境。因此,在站点的示例中,CD它被正确“继承”。

最后,您%CD%在第一个示例中没有正确引用。这实际上并不重要(它也不会起作用),但正确的符号应该是..., "\"%CD%\""),与网站示例中的相同。

相关内容