如何在Windows中设置用于打开不带扩展名的文件的默认程序?

评论

接受的答案有效,但同时其他功能也无法正常工作;在Windows上选择默认程序不起作用(已损坏)

哪个功能停止工作?

#1 楼

使用命令行:
assoc .="No Extension"
ftype "No Extension"="C:\path\to\my editor.exe" "%1"

重新启动计算机以使更改生效。
要称赞,我从这里和这里的vim Wikia中学到了这一点
其他信息:< br代替"C:\path\to\...",以下宏可能有用:


%SystemDrive%-安装了驱动器窗口,即C:\


%ProgramFiles%-例如"C:\Program Files\"


%ProgramFiles(x86)%-例如"C:\Program Files (x86)\"


尽管如此,您仍需要正确地对其进行转义:
ftype "No Extension"=^"^%ProgramFiles(x86)^%\Notepad++\notepad++.exe^" "%1"

将图标设置为与.txt文件相同(我没有这样做,因为它会自动使文件的图标显示为Notepad ++文件):
assoc "No Extension"\DefaultIcon=%SystemRoot%\System32\imageres.dll,-102

要撤消操作,您可以阅读assoc /?ftype /?信息,例如:
ftype "No Extension"=
assoc "No Extension"\DefaultIcon=
assoc .=


评论


请注意,如果您的编辑器位于包含空格(例如“ C:\ Program Files”)的文件夹中,则需要将其放在引号中。 ftype no_ext =“ C:\ Program Files(x86)\ Notepad ++ \ notepad ++。exe”“%1”

–GuiSim
2011年11月8日在16:19

FWIW,在Win7中,您需要以管理员身份运行cmd

–克里斯蒂安·迪亚科内斯库(Cristian Diaconescu)
2012年10月9日9:19



OK,再说一遍:在上面的示例中,no_ext是Windows资源管理器将在此类文件的“类型”列中显示的内容。我认为更具可读性的描述会更好,因此我使用了“ No extension”(包括双引号),而不是上述命令中的no_ext。

–克里斯蒂安·迪亚科内斯库(Cristian Diaconescu)
2012年10月9日在9:26



这是我为没有扩展名的文件(感谢@grawity的指针和想法)为.txt文件设置图标的方式:assoc“无扩展名” \ DefaultIcon =%SystemRoot%\ system32 \ imageres.dll,-102

–克里斯蒂安·迪亚科内斯库(Cristian Diaconescu)
2012年10月9日在9:35



在Windows 10中,这对我不起作用。一些注意事项:1)在PowerShell中找不到assoc,因此需要cmd。 2)当不以管理员身份运行时,它抛出一个错误,所以我以管理员身份运行。该命令运行时不会抛出错误,但似乎未执行任何操作。之后我也重新启动了。

–JamesFaix
18年4月5日在13:31

#2 楼

从Windows IT pro:

带扩展名的普通文件可以与一个程序关联,但是没有扩展名的文件则不是这样。如果双击一个并选择一个应用程序,然后选中始终使用该应用程序的框,则将其忽略,并且每次选择文件时都必须选择该应用程序。

您可以使用注册表:


启动注册表编辑器(regedit.exe)
移至HKEY_CLASSES_ROOT
从“编辑”菜单中选择“新建-密钥”
输入名称'。'然后按Enter键(不要输入引号)
选择新的'。键
双击(默认)值
更改为用于打开的HKEY_CLASSES_ROOT,例如notepad.exe应用程序的NOTEPAD NOTEPAD
单击“确定”



如果现在双击没有扩展名的文件,则将打开所选应用程序。

要检查现有应用程序使用了什么,请查看其在HKEY_CLASSES_ROOT下的条目,例如HKEY_CLASSES_ROOT.doc使用Word.Document.8,因此如果您希望将其用作默认编辑器,则可以将HKEY_CLASSES_ROOT。(默认)更改为Word.Document.8。

任何避免编辑文本的方法注册表如下:


打开资源管理器-查看-文件夹选项...-文件类型-新建类型:
类型说明:文本(任何描述,您都可以输入in)
相关扩展名:。 (只是一个周期)
操作:-新...
操作:打开
用于执行操作的应用程序:c:\ winnt \ notepad.exe
单击“确定”,然后单击“确定”再次


评论


以上信息有问题。我已将.xml文件设置为使用Notepad ++打开,但.xml的(默认)条目设置为xmlfile ...

–彼得·多布罗格斯特(Piotr Dobrogost)
09年7月27日在19:49

我不太明白您的意思,但是我恐怕也不知道解决方案...

– Ivo Flipse
09年7月27日在19:50

@Piotr:如果HKCR \ .xml的默认条目是xmlfile,则意味着外壳程序(Explorer)需要转到HKCR \ xmlfile并从该密钥读取信息。

–user1686
09年7月28日在7:02

@Ivo当我查看注册表中的.txt条目以检查它的外观(我已通过Notepad ++打开的.txt文件)时,默认条目具有“ txtfile”值。此注册表项中无处没有Notepad ++的痕迹。我想念什么?

–彼得·多布罗格斯特(Piotr Dobrogost)
2009年9月16日下午16:35

您是说现在不使用Notepad ++吗?因为如果您知道扩展名或自己创建扩展名,则应该可以将其设置为NotePad

– Ivo Flipse
09年9月16日在17:49

#3 楼

这是.reg文件的示例,用于使记事本打开未知的文件扩展名。创建一个扩展名为.reg的新文本文件,将其剪切并粘贴到其中,然后双击运行,它将其放入注册表中。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell]
@="notepad"

[HKEY_CLASSES_ROOT\Unknown\shell\notepad]
@="Open with Notepad"

[HKEY_CLASSES_ROOT\Unknown\shell\notepad\command]
@="C:\WINDOWS\NOTEPAD.EXE %1"


评论


上面的信息有问题。当我单击新创建的.reg文件时,出现“指定的文件不是注册表脚本”错误。

–彼得·多布罗格斯特(Piotr Dobrogost)
09年7月27日在19:54

抱歉,请立即尝试,我在其顶部添加了另一行。

– Pauk
09年7月27日在20:39

这在Explorer中有效,但在Total Commander中无效,Total Commander在此方面的行为(并始终具有)与Explorer相同。有什么想法吗?

–彼得·多布罗格斯特(Piotr Dobrogost)
09-09-23在12:36

您必须为Windows中的每个未知文件设置文件关联的想法很疯狂。干得好先生!

–史蒂芬·潘妮(Steven Penny)
2012年3月30日21:26

在win7中验证,可以工作。因此不需要单独的./键。

– Jiggunjer
15年3月17日在16:59

#4 楼

在Windows 8.1上,大多数解决方案都不适合我。我通过执行以下操作使其工作(这也适用于Windows 7和Windows 10):



遵循hasnj的解决方案:首先打开提升的命令窗口并键入

assoc .="No Extension"
ftype "No Extension"="C:\path\to\my editor.exe" "%1"



打开regedit并导航到

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.


右键单击并添加新密钥如果尚不存在,则称为UserChoice

在新的UserChoice键中,右键单击并创建一个名为Progid的新字符串值。将其值设置为“无扩展名”(不带双引号)。


评论


不幸的是,这不适用于Windows 8.1。之后,我尝试杀死并重新启动explorer.exe-我还需要做其他事情吗?在您提到的HCU条目中,我现在有OpenWithList,OpenWithProgids和我添加的一个UserChoice。

–名侦探柯南
2015年4月13日15:38



第3条中可能存在的关键错误。

–JosefZ
16年11月19日在19:21



#5 楼

Pauk的答案对我不起作用,我只能使用:


Windows注册表编辑器版本5.00

[HKEY_CLASSES_ROOT。]
@ = “无扩展名”

[HKEY_CLASSES_ROOT \无扩展名]

[HKEY_CLASSES_ROOT \无扩展名\ Shell]

[HKEY_CLASSES_ROOT \无扩展名\ Shell \打开]

[HKEY_CLASSES_ROOT \ No Extension \ Shell \ Open \ Command]
@ =“ C:\\ pathtoexe \\ yourexe.exe%1”


请注意exe路径上的双反斜杠。

评论


这是为我工作的那个。关键是双反斜杠。

–摇滚
15年7月24日在7:31

#6 楼

不敢相信还没有人说过这句话。您不需要像接受的答案那样提供文本编辑器的路径。

只需在admin命令提示符下运行以下命令:

assoc .=txtfile


评论


上帝是正确的答案!复杂度越低越好..谢谢

–亚历山大·杜布里考特(Alexandre Daubricourt)
20 Mar 15 '20在10:38

这样行吗?

–丹尼尔(Danijel)
20-05-29在9:26

@Danijel是的,前几天在Windows上再次进行了新安装。

– CoolOppo
20年6月2日,2:12

#7 楼

您还可以使用NirSoft FileTypesManager:

FileTypesMan是Windows“文件夹选项”中“文件类型”选项卡的替代方法。
FileTypesMan还允许您轻松地编辑属性和标志。每种文件类型,以及允许您添加,编辑和删除文件类型中的操作。


#8 楼

其他答案有些过时了。以下是适用于Windows 7的链接:

不带文件扩展名的文件名的Shell扩展


不带文件扩展名的文件名的Shell扩展可以在以下条件下注册:

[HKEY_CLASSES_ROOT\.]
           For example, to associate a program (for example, Notepad.exe) to open all files with no extension, use the following registry keys:

[HKEY_CLASSES_ROOT\.]
@=""

[HKEY_CLASSES_ROOT\.\shell]

[HKEY_CLASSES_ROOT\.\shell\open]

[HKEY_CLASSES_ROOT\.\shell\open\command]
@="<path to notepad.exe> %1"
           Here is an alternative method:

[HKEY_CLASSES_ROOT\.]
@="NoExtFile"

[HKEY_CLASSES_ROOT\NoExtFile]

[HKEY_CLASSES_ROOT\NoExtFile\shell]

[HKEY_CLASSES_ROOT\NoExtFile\shell\open]

[HKEY_CLASSES_ROOT\NoExtFile\shell\open\command]
@="<path to notepad.exe> %1"



评论


将来,请在网站上包括最相关的部分,而不仅仅是提供链接。谢谢。

–slhck
13年8月14日在16:30



#9 楼


我在IE9中打开PDF文件时遇到问题,是IE9(旧程序需要)。
PDF文件是由Javascript生成的,并作为应用程序/ pdf内容类型返回到浏览器。很好,但文件名“无”,这是不好的。 IE8允许您选择“保存”,“取消”和“打开”并了解MimeType。出于某些原因,IE9不会。因此,您每次都必须选择使用PDF阅读器打开它。

我的解决方案:通过这篇文章,我为不带扩展名的文件建立了文件关联。首先,我将其映射到Acrobat Reader,它工作正常,但限制了不带扩展名即可打开文件的可能性。因此,我选择Internet Explorer作为没有扩展名的文件的默认查看器。这样,如果IE可以打开它或知道插件或其他关联,它将起作用。

我在桌面上使用文件“ none1”和“ none2”对其进行了测试。
“ none1”是一个文字文件,上面写着“ hello world”。 “ none2”是pdf文件。


这是我的.reg文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.]
@="htmlfile"

[HKEY_CLASSES_ROOT\.\PersistentHandler]
@="{eec97550-47a9-11cf-b952-00aa0051fe20}"



-请参阅屏幕截图

http://postimg.org/image/xtklrzcoz/