2

我正在学习 power shell,我对这段代码有疑问。当我解析它时,一切正常,但不能一起使用。可能是什么问题呢?谢谢你的答案。

$hotfix = read-host "Enter hotfixID"

Start-Process firefox.exe (get-hotfix | 
Where-Object -filter {$_.hotfixID -eq $hotfix} | 
Select-Object -ExpandProperty Caption)
4

2 回答 2

1

您的脚本在这里正常工作。请注意,我没有安装 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
)
于 2013-08-15T13:39:54.470 回答
0

要获得特定的修补程序,您需要尝试以下操作:

$hotFix = Read-Host "Enter hotfixID"
Get-Hotfix -Id $hotFix

如果我了解您要执行的操作,则无需创建浏览器进程。

于 2013-08-15T13:29:01.030 回答