为什么 assoc 在这里不起作用来解除文件类型关联?

为什么 assoc 在这里不起作用来解除文件类型关联?

我通过创建一个文件并命名它、单击它并选择作为其默认应用程序,将文件扩展名与应用程序 () 关联.txt2notepada.txt2notepad

然后我尝试使用以下命令将其与记事本分离:assoc .txt2=从提升的 CMD 窗口。[相关文档]

它什么都没改变。即使重新启动计算机后,单击该文件仍会在记事本中打开它。

为什么?这里是不是缺少了某些步骤?

更多信息

键入assoc .txt2以检查其关联将返回:

未找到扩展名 .txt2 的文件关联

答案1

assoc命令非常古老,源自 DOS,并且不能很好地利用 Windows 较新的文件关联机制。

证据是,运行后assoc .txt2=notepad,双击文件.txt2不会启动notepad,因此您仍然需要指定默认应用程序。反之亦然:运行assoc .txt2=不足以撤消较新的机制。

搜索注册表发现,该命令assoc .txt2=notepad仅设置了注册表项HKLM\SOFTWARE\Classes\.txt2HKCR\.txt2,而这些项和被删除assoc .txt2=

但是,通过 Explorer 将默认关联设置为“始终使用”会主要创建以下键HKCU\Software\Classes\.txt2 和​​其他一些键。

这就是为什么assoc .txt2=无法通过 Explorer 撤消分配的原因,因为它不知道这些新的注册表项。

答案2

您只需删除assocfile type=

assoc .txt2=
ftype text2=
  • 这将删除与您的.txt2扩展,你不需要手动执行此操作
HKCU\Software\Classes\.txt2
HKLM\SOFTWARE\Classes\.txt2
  • 当需要再次创建时,使用:
assoc .txt2=text2
ftype text2=%windir%\notepad.exe "%1"

相关内容