在启动过程MSIEXEC中扩展$ Env:TEMP时出现问题

问题描述 投票:0回答:1

我一直无法理解为什么以下命令不会触发Power-Bi的静默安装 -

Start-Process msiexec -wait -ArgumentList '/i $ENV:Temp\PBIDesktop_x64.msi /qn /norestart ACCEPT_EULA=1'

以下作品 -

Start-Process msiexec -wait -ArgumentList '/i C:\Users\ADMINI~1\AppData\Local\Temp\PBIDesktop_x64.msi /qn /norestart ACCEPT_EULA=1

'

我正在使用提升的ISE,但第一个命令不会产生任何错误,也不会执行任何操作。我认为$ENV:TEMP没有扩大。请帮忙。

问候,符号

powershell
1个回答
3
投票

如果您使用单引号而不是双引号,Powershell将不会扩展字符串中的任何内容。所以将代码更改为:

Start-Process msiexec -wait -ArgumentList "/i $ENV:Temp\PBIDesktop_x64.msi /qn /norestart ACCEPT_EULA=1" 

这个link描述了报价规则。

简而言之:

> $i = 1
> "Double quotes: $i + $i"
Double quotes: 1 + 1
> 'Single quotes: $i + $i'
Single quotes: $i + $i

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.