使用test.nope
,test.nope
或call test.nope
从命令行或批处理文件运行具有未知扩展名的文件(例如start test.nope
)时 - 您会出现一个窗口,要求您"Choose the program you want to use to open this file"
(在Windows 7中,可能在大多数Windows操作系统中)。
是否可以取消此窗口?
我最初的想法是在尝试打开文件之前检查%PATHEXT%
变量中是否存在扩展名。但是,这不包含所有已知文件扩展名。例如,虽然.py
扩展名不在我的%PATHEXT%
变量中,但Python脚本仍然可以正确打开。
答案 0 :(得分:3)
直接注册表查询的替代方法(由@Mitch建议)是使用命令行实用程序assoc
assoc .nope
如果没有为文件扩展名注册的应用程序,则会生成
C:\>assoc .nope
File association not found for extension .nope
如果找到关联(例如,对于.docx
扩展名),则会生成
C:\>assoc .docx
.docx=Word.Document.12
您可能还会发现ftype
有用。它返回assoc
返回的文件类型的命令行(我将Office安装在非默认位置,如您所见):
C:\>ftype Word.Document.12
Word.Document.12="D:\Microsoft Office\Office12\WINWORD.EXE" /n /dde
答案 1 :(得分:2)
文件类型在HKCR\
(full documentation available from MSDN)中注册。您可以通过检查是否存在密钥来查明是否已注册类型。在批处理文件中,您可以使用reg
命令执行此操作。
reg query HKCR\.txt || echo This will never print
reg query HKCR\.foobartxt || echo Could not find foobartxt
话虽如此,可以在没有默认处理程序的情况下定义和命名文件类型。此外,具有默认处理程序的那些可能没有命令行 - 该文件可以通过DDE或COM启动。