我想从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。
答案 0 :(得分:0)
这对我有用:
$command = '& "reptool.exe" --% ' + "--profile=`"$repToolProfile`"
Invoke-Expression $command