PowerShell将参数传递给具有开关的可执行文件

时间:2010-09-25 17:25:18

标签: powershell

我想转换 对PowerShell脚本的abc.exe / u“c:/programs/abc.dll”可以解释如何操作。

如何执行带有参数??

的开关的* .exe

感谢..

阳光

2 个答案:

答案 0 :(得分:4)

它应该像以下一样直截了当:

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

但是,您可能会遇到引用和PowerShell解释的其他字符的问题。通常,查询参数就足够了,但如果仍然不起作用,您可以在PowerShell 2.0中使用Start-Process,例如:

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

如果您安装了PowerShell Community Extensions,则可以使用名为echoargs.exe的实用程序来解决将args传递给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 :(得分:1)

如果正常的语法无效,您可以尝试:

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

另请参阅:Documentation for System.Diagnostics.ProcessStartInfo