我通过创建一个文件并命名它、单击它并选择作为其默认应用程序,将文件扩展名与应用程序 () 关联.txt2
。notepad
a.txt2
notepad
然后我尝试使用以下命令将其与记事本分离:assoc .txt2=
从提升的 CMD 窗口。[相关文档]
它什么都没改变。即使重新启动计算机后,单击该文件仍会在记事本中打开它。
为什么?这里是不是缺少了某些步骤?
更多信息
键入assoc .txt2
以检查其关联将返回:
未找到扩展名 .txt2 的文件关联
答案1
该assoc
命令非常古老,源自 DOS,并且不能很好地利用 Windows 较新的文件关联机制。
证据是,运行后assoc .txt2=notepad
,双击文件.txt2
不会启动notepad
,因此您仍然需要指定默认应用程序。反之亦然:运行assoc .txt2=
不足以撤消较新的机制。
搜索注册表发现,该命令assoc .txt2=notepad
仅设置了注册表项HKLM\SOFTWARE\Classes\.txt2
和HKCR\.txt2
,而这些项和被删除assoc .txt2=
。
但是,通过 Explorer 将默认关联设置为“始终使用”会主要创建以下键HKCU\Software\Classes\.txt2
和其他一些键。
这就是为什么assoc .txt2=
无法通过 Explorer 撤消分配的原因,因为它不知道这些新的注册表项。
答案2
您只需删除assoc
和file type=
assoc .txt2=
ftype text2=
- 这将删除与您的
.txt2
扩展,你不需要手动执行此操作
HKCU\Software\Classes\.txt2
HKLM\SOFTWARE\Classes\.txt2
- 当需要再次创建时,使用:
assoc .txt2=text2
ftype text2=%windir%\notepad.exe "%1"
ftype
在微软文档