通过批处理一次性将一堆未关联的文件扩展名与 Notepad++ 关联

通过批处理一次性将一堆未关联的文件扩展名与 Notepad++ 关联

我有数千个文件,扩展名为“.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.batsetdotn-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

相关内容