我正在学习power shell,我对此代码有疑问。当我解析它时,一切正常,但不是在一起。可能是什么问题呢?谢谢你的回答。
$hotfix = read-host "Enter hotfixID"
Start-Process firefox.exe (get-hotfix |
Where-Object -filter {$_.hotfixID -eq $hotfix} |
Select-Object -ExpandProperty Caption)
答案 0 :(得分:1)
您的脚本在这里正常运行。请注意,我没有安装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
)
答案 1 :(得分:0)
要获取特定的修补程序,您需要尝试以下内容:
$hotFix = Read-Host "Enter hotfixID"
Get-Hotfix -Id $hotFix
如果我了解您要尝试的操作,则无需创建浏览器进程。