gpt4 book ai didi

PowerShell:使用不带引号的参数启动进程

转载 作者:行者123 更新时间:2023-12-02 23:28:55 28 4
gpt4 key购买 nike

我的 PowerShell 脚本应该启动一个带有指定参数的外部可执行文件。我有两个字符串:文件名和参数。这就是我通常希望启动 API 的进程。然而,PowerShell 却失败了。

我需要将可执行文件和参数保存在单独的字符串中,因为它们是在我脚本的其他地方配置的。这个问题只是关于使用这些字符串来启动这个过程。此外,我的脚本需要在可执行文件前面放置一个公共(public)基本路径。

这是代码:

$execFile = "SomeSetup.exe"
$params = "/norestart /verysilent"
& "$basePath\$execFile" $params | Out-Host
# Pipe to the console to wait for it to finish

这是实际结果(不适用于此程序):

  • 进程文件名:“C:\My\Base path\SomeSetup.exe”
  • 进程命令行:"/norestart/verysilent"

这是我期望的(这会起作用):

  • 进程文件名:“C:\My\Base path\SomeSetup.exe”
  • 进程命令行:/norestart/verysilent

问题是安装程序识别了额外的引号并将两个参数解释为一个 - 但不理解它。

我看过 Start-Process,但它似乎需要 string[] 中的每个参数,而我没有。拆分这些参数似乎是一项复杂的 shell 任务,而不是我会(可靠地)做的事情。

我现在能做什么?我应该使用类似的东西吗

& cmd /c "$execFile $params"

但是,如果 $execFile 包含很可能发生的空格,并且通常会在您找到它之前引起更多麻烦,该怎么办。

最佳答案

你可以把你的参数放在一个数组中:

$params = "/norestart", "/verysilent"
& $basepath\$execFile $params

关于PowerShell:使用不带引号的参数启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018837/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com