![通过批处理一次性将一堆未关联的文件扩展名与 Notepad++ 关联](https://linux22.com/image/1575906/%E9%80%9A%E8%BF%87%E6%89%B9%E5%A4%84%E7%90%86%E4%B8%80%E6%AC%A1%E6%80%A7%E5%B0%86%E4%B8%80%E5%A0%86%E6%9C%AA%E5%85%B3%E8%81%94%E7%9A%84%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D%E4%B8%8E%20Notepad%2B%2B%20%E5%85%B3%E8%81%94.png)
我有数千个文件,扩展名为“.0”、“.1”、“.2”等,我想将它们与 Notepad++ (v7.5.8) 关联。它们目前在 Windows (Windows 10) 中没有任何文件关联。由于它们没有任何现有关联,因此解决方案显示在这里对我来说不起作用。
另外,我希望在 Windows 中而不是在 N++ 设置中关联它们,因为我从 Windows 资源管理器访问这些文件。
答案1
在我看来,比手动关联所有.#
文件更容易的方法是使用 regedit 设置一个 catch-all 编辑模式:
HKEY_CLASSES_ROOT\*\shell
:添加键 =Notepad++
,设置(Default)
=Edit with &Notepad++
HKEY_CLASSES_ROOT\*\shell\Notepad++
:添加键 =command
,设置(Default)
为"c:\program files (x86)\notepad++\notepad++.exe" "%1"
——使用系统中正确的 notepad++.exe 路径,并确保路径和 %1 周围都有双引号,以确保正确处理空格。
注销并重新登录,或重新启动。现在,在资源管理器中的任何文件上,您都可以右键单击、选择Edit with Notepad++
,然后就大功告成了!
每个扩展关联(所有用户)
或者,打开一个cmd.exe
窗口(必要时以管理员身份运行),然后运行
assoc .1=DotNumber
ftype DotNumber="c:\program files (x86)\notepad++\notepad++.exe" "%1"
for %n in (0 1 2 3 4 5 6 7 8 9) DO assoc .%n=DotNumber
如果您需要更多.#
扩展,请将它们添加到 for 循环中。如果您想从批处理文件(setdotn-assoc.bat
或setdotn-assoc.cmd
)而不是在cmd.exe
提示符下设置它们,则需要两个%
而不是一个,其他一切都相同:
assoc .1=DotNumber
ftype DotNumber="c:\program files (x86)\notepad++\notepad++.exe" "%1"
for %%n in (0 1 2 3 4 5 6 7 8 9) DO assoc .%%n=DotNumber
每个扩展关联(仅适用于当前用户)
如果你在权限方面遇到问题全部用户,您可以尝试这样做以进行每个扩展的关联,但仅针对当前用户。
如果您能够创建 DotNumber 类型,ftype DotNumber=
请删除现有的定义。
从命令行运行以下命令(这次甚至不需要管理员命令行)
REG ADD HKCU\Software\Classes\DotNumber /ve /d "DotNumber File" /f
REG ADD HKCU\Software\Classes\DotNumber\Shell /ve /d "open" /f
REG ADD HKCU\Software\Classes\DotNumber\Shell\open /ve /d "open DotNumber file" /f
REG ADD HKCU\Software\Classes\DotNumber\Shell\open\command /ve /d "\"c:\program files (x86)\notepad++\notepad++.exe\" \"^%1\"" /f
FOR %n in (0 1 2 3 4 5 6 7 8 9) DO REG ADD HKCU\Software\Classes\.%n /ve /d "DotNumber" /f
如果你想检查它是否被写
REG QUERY HKCU\Software\Classes\DotNumber /S
FOR %n in (0 1 2 3 4 5 6 7 8 9) DO REG QUERY HKCU\Software\Classes\.%n /S