在特定位置调用带引号的可执行文件

时间:2016-07-04 08:18:01

标签: powershell

我想从PowerShell脚本中调用可执行文件,该脚本需要在参数列表中的特定位置使用引号。虽然我发现了类似的问题,但我根本找不到解决方案。

这是命令在命令行上必须显示的内容:

reptool.exe --profile="C:\My profile"

参数值(" C:\ Profiles ...")应该使用变量动态生成:

$repToolProfile = "C:\My profile"

这是我已经尝试过的:

&"reptool.exe" --profile=$repToolProfile

失败,因为参数是"--profile=C:\My profile"(引用整个参数)。

&"reptool.exe" --profile="$repToolProfile"

失败,因为参数是"--profile=C:\My profile"(引用整个论点,与上面相同)。

&"reptool.exe" "--profile=`"$repToolProfile`"

失败,因为参数为"--profile="C:\My profile""(引用整个参数值)。

我不能使用单引号或"逐字运算符" (--%)因为我必须使用PowerShell变量,所以我都不能使用Start-Process,因为它被异步调用(即使我使用-Wait参数。我还要检查退出代码。我不想将我的参数转换为Base64。

1 个答案:

答案 0 :(得分:0)

这对我有用:

$command = '& "reptool.exe" --% ' + "--profile=`"$repToolProfile`"
Invoke-Expression $command