如何让 ConEmu 在启动时执行 powershell 脚本?

如何让 ConEmu 在启动时执行 powershell 脚本?

我使用以下命令启动新的 ConEmu powershell 控制台。

ConEmu64.exe /config "shell" /dir "c:\" /cmd powershell -new_console:n

我想传递一个附加参数来指定在启动新控制台时运行的 powershell 脚本。下面的代码几乎可以工作,但只打印整个命令,并没有真正执行它:

ConEmu64.exe /config "shell" /dir "c:\" /cmd 'powershell -noexit -Command {Write-host "Hello world"}' -new_console:n

生成结果:

Write-host Hello world
C:\>

我期待着:

Hello world
C:\>

答案1

删除命令周围的单引号。ConEmu 执行跟在/cmdswitch 后面的完整字符串(命令),只有例外 - 在启动控制台之前,所有-new_console...-cur_console...都从该字符串中删除。

ConEmu64.exe /config "shell" /dir "c:\" /cmd powershell -noexit -Command Write-host "Hello world" -new_console:n

答案2

好的,我明白了,这是一个引用问题,但仍然有一些奇怪的事情:

/config "shell" /dir "c:\" /cmd 'powershell -noexit -Command "& Write-host `"Hello world""' -new_console:n

这有效并产生了预期的结果:

Hello World
C:\>

但如果你仔细观察,“Hello World”末尾的引号没有被转义,而第一个引号被转义了。如果我使用看似正确的语法:

/config "shell" /dir "c:\" /cmd 'powershell -noexit -Command "& Write-host `"Hello world`""' -new_console:n

我明白了

Hello world`
C:\>

相关内容