6

Я использую следующую команду для запуска новых консолей PowerShell ConEmu.

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:\>

2 ответа2

4

Удалите одиночные квоты вокруг вашей команды. ConEmu выполняет неповрежденную строку (команду), которая следует за ключом /cmd , за исключением того, что все -new_console... и -cur_console... удаляются из этой строки перед запуском консоли.

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

Хорошо, разобрался, проблема с цитированием, но все еще происходит какая-то странность:

/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:\>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .