Powershell cmdlet 中的变量未被替换

Variables are not getting replaced in powershell cmdlet

我在 powershell 中使用 start-process cmdlet 作为

Start-Process -FilePath "$Installer_Path" -Args '/s /v"/qb SETUPTYPE=\"$Setup_type\" USERNAME=$user_name PASSWORD=$password SERVER=$sql_server INSTALLDIR=\"$Transfer_Path\\" SHAREPATH=\"$Transfer_Path\\""' –Wait

在上面的命令中,变量没有被替换,除了 $Installer_Path。我认为问题是因为位于“”“”内的变量。任何人都可以帮助我进行变量替换吗?

谢谢。

问题是您使用的是单引号而不是双引号。为了扩展变量,您需要使用双引号。如果您必须在其中使用双引号,您可以通过在它们前面加上反引号 ` 或将它们加倍 "".

来转义它们
Start-Process -FilePath "$Installer_Path" -Args "/s /v`"/qb SETUPTYPE=\`"$Setup_type\`" USERNAME=$user_name PASSWORD=$password SERVER=$sql_server INSTALLDIR=\`"$Transfer_Path\\`" SHAREPATH=\`"$Transfer_Path\\`"`"" –Wait