Powershell从注册表得到本地关联文件的扩展名


适用于所有版本。
在先前的技巧中我们知道如何用一行命令获取多行注册表记录,这里,我们再来回顾下这段代码:

$lookup = Get-ItemProperty Registry::HKCR\.[a-f]?? | 
  Select-Object -Property PSChildName, '(default)', ContentType, PerceivedType |
  Group-Object -Property PSChildName -AsHashTable -AsString

这次读取了所有HKCR中已点开始、3个字宽、且字母开头是A到F的键值。
另外将结果传递给Group-Object,用“PSChildName”做主键并组成一个可查找的表。
“PSChildName”这个值它就是文件的扩展名。
你现在就可以任意查找相关文件了,如下:

PS> $lookup.'.avi'

PSChildName         (default)           ContentType         PerceivedType      
-----------         ---------           -----------         -------------      
.avi                WMP11.AssocFile.AVI                     video              



PS> $lookup.'.fon'

PSChildName         (default)           ContentType         PerceivedType      
-----------         ---------           -----------         -------------      
.fon                fonfile                                                    

只需要记住这里限定了3个且已a-f开头的文件。要获得全部,只需要替换一下即可:

Registry::HKCR\.*

原文地址:Reading Associated File Extensions from Registry (Part 2)

本文链接: https://www.pstips.net/reading-associated-file-extensions-from-registry-part-2.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注