我正在学习 power shell,我对这段代码有疑问。当我解析它时,一切正常,但不能一起使用。可能是什么问题呢?谢谢你的答案。
$hotfix = read-host "Enter hotfixID"
Start-Process firefox.exe (get-hotfix |
Where-Object -filter {$_.hotfixID -eq $hotfix} |
Select-Object -ExpandProperty Caption)
我正在学习 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
)
编辑:正如在下面的评论中所讨论的,问题是参数在 via 调用时不起作用powershell.exe -command scriptname
。解决方案是通过 ArgumentList 隐式传递参数:
$Hotfix = Read-Host "Enter Hotfix ID"
Start-Process firefox.exe -ArgumentList `
(
Get-HotFix -Id "$Hotfix" |
Select-Object -ExpandProperty Caption
)
要获得特定的修补程序,您需要尝试以下操作:
$hotFix = Read-Host "Enter hotfixID"
Get-Hotfix -Id $hotFix
如果我了解您要执行的操作,则无需创建浏览器进程。