PowerShell передает параметр в исполняемый файл, имеющий переключатели - PullRequest
5 голосов
/ 25 сентября 2010

я пытаюсь конвертировать abc.exe / u "c: /programs/abc.dll" для сценария powershell может кто-нибудь объяснить, как это сделать.

как мне выполнить * .exe с переключателями с параметрами ??

спасибо ..

Sunny

Ответы [ 2 ]

4 голосов
/ 26 сентября 2010

Это должно быть так же просто, как:

C:\PS> abc.exe /u c:/programs/abc.dll

Однако вы можете столкнуться с проблемами при цитировании и других символах, которые интерпретируются PowerShell. Обычно достаточно квотирования аргумента, но если это все еще не работает, вы можете использовать Start-Process в PowerShell 2.0, например ::1004

C:\PS> start-process abc.exe -arg @'
...
'@

Если у вас установлено PowerShell Community Extensions , вы можете использовать утилиту echoargs.exe для устранения проблем, связанных с передачей аргументов в exe. e.g.:

C:\PS> echoargs /u c:/programs/abc.dll
Arg 0 is </u>
Arg 1 is <c:/programs/abc.dll>

Echoargs отображают аргументы в точности так, как их видит EXE.

1 голос
/ 25 сентября 2010

Если нормальный синтаксис не помогает, попробуйте:

$psi = New-Object System.Diagnostics.ProcessStartInfo "abc.exe"
$psi.Arguments = "/u c:/programs/abc.dll"
[System.Diagnostics.Process]::Start($psi)

См. Также: Документация для System.Diagnostics.ProcessStartInfo .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...