这Shell 上的文档不是很清楚,也许我搞糊涂了。
- 如何将 %CD% 作为参数传递给我正在运行的命令?
- 第一个参数到底是什么?“open”、“print”等等是什么意思?第二个例子中的“”,“”是什么意思。
具体来说,我感兴趣的是运行如下命令:
Shell("open","explorer","%CD%")
但这并不完全有效。explorer
可以打开,但不能使用 CD。文档的最后示例确实有效:
Shell("new_console:Ibn","cmd","/k start explorer \"%CD%\" && exit")
这很令人困惑。为什么这个有效,而另一个无效?
我正在使用版本 161022(撰写本文时最新版本)。
谢谢,
答案1
宏Shell
与ShellExecute 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%\"")
,与网站示例中的相同。