当前位置 博文首页 > Powershell实现从注册表获取本地关联文件的扩展名

    Powershell实现从注册表获取本地关联文件的扩展名

    作者:admin 时间:2021-02-07 12:24

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

    复制代码 代码如下:

    $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\.*

    js