我需要从 PS 修改注册表。此注册表项与特定文件(所有扩展名的文件夹)的上下文菜单相关。
\\HKEY_CURRENT_USER\Software\Classes\*
目前我想向这个路径添加项目:
HKCU:\Software\classes\*
|- shell
|- shellex
但是,当我在此路径上执行 dir 时,会输出classes
文件夹中的所有项目:
PS D:\> dir "HKCU:\Software\classes\*"
Hive: HKEY_CURRENT_USER\Software\classes
Name Property
---- --------
*
.3g2 VLC.backup : WMP11.AssocFile.3G2
(default) : VLC.3g2
.3gp VLC.backup : WMP11.AssocFile.3GP
(default) : VLC.3gp
.3gp2 VLC.backup : WMP11.AssocFile.3G2
(default) : VLC.3gp2
.3gpp VLC.backup : WMP11.AssocFile.3GP
(default) : VLC.3gpp
.3mf
如果我理解正确,我的查询将被星号通配。注册表项(文件夹)名为*
。如何仅为该文件夹创建选择器而不使其作为通配符工作?也应该适用于所有其他命令,而不仅仅是dir
( Get-ChildItem
)。
已经尝试过这些但没有成功:
PS D:\> dir "HKCU:\Software\classes\**"
PS D:\> dir "HKCU:\Software\classes\\*"
PS D:\> dir "HKCU:\Software\classes\'*'"
PS D:\> dir "HKCU:\Software\classes\`*"
解决方法Get-ChildItem
:
# argument -LiteralPath, unfortunatelly only for "dir" command
PS D:\> dir -LiteralPath "HKCU:\Software\classes\*"
编辑:由于我收到了与 相关的答案Get-ChildItem
,请假设相同的路径应该适用New-Item
(不支持-LiteralPath
)。
Get-ChildItem -LiteralPath "HKCU:\Software\classes\*"
或者:
Get-ChildItem "HKCU:\Software\classes\" | Where-Object PSChildName -eq '*' | Get-ChildItem
如果您想要对象本身的通用解决方案:
Get-ChildItem "HKCU:\Software\classes\" | Where-Object PSChildName -eq '*'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句