我使用以下注册表宏在 .XML 文件上添加上下文菜单
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\xmlfile\shell\FormatXML]
@="Format-XML"
[HKEY_CLASSES_ROOT\xmlfile\shell\FormatXML\command]
@="D:\\Program Files (x86)\\Tools\\XFormat\\XFormat.bat %1"
目前,我收到了一台装有 Windows 7 的新电脑,我运行相同的注册表脚本来添加资源管理器上下文菜单。现在,当我检查菜单是否可见时,我什么也没看到!
我已修改我的注册表脚本以使用“ .xml”而不是“xmlfile”来定义相同的上下文,但什么也没有发生。
然后我将“.xml”替换为“.txml”,将 XML 文件类型更改为 TXML,...这样就可以了。
会发生什么 ?
如何在 XML 文件上定义资源管理器上下文菜单?
我的 XML 注册表如下
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.xml]
@="xmlfile"
"Content Type"="text/xml"
"PerceivedType"="text"
[HKEY_CLASSES_ROOT\.xml\OpenWithProgids]
"VisualStudio.xml.10.0"=""
"VisualStudio.xml.d25f0747"=""
[HKEY_CLASSES_ROOT\.xml\PersistentHandler]
@="{7E9D8D44-6926-426F-AA2B-217A819A5CCE}"
[HKEY_CLASSES_ROOT\.xml\shell]
[HKEY_CLASSES_ROOT\.xml\shell\FormatXML]
@="Format-XML"
[HKEY_CLASSES_ROOT\.xml\shell\FormatXML\command]
@="D:\\Program Files (x86)\\Tools\\XFormat\\XFormat.bat %1"
答案1
这是一个老问题,但自从它浮到顶部以来......
编辑失败的最可能原因是它创建的条目中既没有可执行文件/bat 的路径,也没有参数(%1)的完整限定路径未被引用,因此当路径中有空格时将会失败:
如果添加必要的引号:
并且导出该条目,.reg
文件将变成:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\xmlfile\shell\FormatXML\command]
@="\"D:\\Program Files (x86)\\Tools\\XFormat\\XFormat.bat\" \"%1\""
请注意转义的引号。
当 regedit 可以充当所见即所得的编辑器时,就无需.reg
从头编写文件并担心转义序列。如果需要修改路径或克隆到其他 ProgID,则在 regedit 中创建条目然后编辑导出的文件要容易得多。
答案2
现在,在 Windows 10 上,我在电脑上使用的解决方案如下
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\SystemFileAssociations\.xml\shell\FORMAT-XML\command]
@="C:\\Script\\FORMAT-XML\\FORMAT-XML.bat \"%L\""