使用以下PowerShell命令
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion |
Select-String 'Application Name'
我得到这样的输出:
@{DisplayName=Application Name; DisplayVersion=52.4.1521}
如果这是在Unix上,我可能会找出sed
或awk
命令来提取版本号,但在Windows上我甚至不知道从哪里开始。如何将该版本号作为变量的值?
答案 0 :(得分:2)
Get-ChildItem
生成一个对象列表,因此您应该使用这些对象的属性。通过Where-Object
对具有您要查找的显示名称的对象过滤列表,然后展开DisplayVersion
属性:
$regpath = 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$version = Get-ItemProperty "$regpath\*" |
Where-Object { $_.DisplayName -eq 'Application Name' } |
Select-Object -Expand DisplayVersion
您还可以让过滤器与通配符进行部分匹配
... | Where-Object { $_.DisplayName -like '*partial name*' } | ...
或正则表达式
... | Where-Object { $_.DisplayName -match 'expression' } | ...