我正在学习Power Shell,并且这段代码有问题。当我解析它时,所有的东西都可以,但是不能一起使用。可能是什么问题呢?谢谢你的答案。
$hotfix = read-host "Enter hotfixID"
Start-Process firefox.exe (get-hotfix |
Where-Object -filter {$_.hotfixID -eq $hotfix} |
Select-Object -ExpandProperty Caption)
最佳答案
您的脚本在这里可以正常工作。请注意,我没有安装Firefox,但在iexplore上运行良好。您遇到什么问题?
另外,正如@ Colyn1337所述,您不需要使用Where-Object;您可以按以下方式简化此脚本:
$Hotfix = Read-Host "Enter Hotfix ID"
Start-Process firefox.exe
(
Get-HotFix -Id "$Hotfix" |
Select-Object -ExpandProperty Caption
)
编辑:如以下注释中所述,问题是通过
powershell.exe -command scriptname
调用时参数不起作用。解决方案是通过ArgumentList隐式传递参数:$Hotfix = Read-Host "Enter Hotfix ID"
Start-Process firefox.exe -ArgumentList `
(
Get-HotFix -Id "$Hotfix" |
Select-Object -ExpandProperty Caption
)
关于powershell - powershell变量不会在脚本的第二部分中使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18253517/