題 如何在Windows中設置沒有擴展名的打開文件的默認程序?


如何設置打開文件的默認程序  Windows中的擴展?


103
2017-07-27 13:07


起源


接受的答案有效,但同時使其他功能停止工作; 選擇默認程序在Windows上不起作用(已損壞) - Piotr Dobrogost
哪個功能停止了工作? - Danijel


答案:


使用命令行:

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

為了表示讚賞,我從vim wikia那裡學到了這一點 這裡 和 這裡

額外信息:

代替 "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 .=

131
2017-07-27 20:41



請注意,如果您的編輯器位於包含空格的文件夾中(例如“C:\ Program Files”),則需要將其放入引號中。 ftype no_ext="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1" - GuiSim
FWIW,在Win7中你需要運行 cmd 作為管理員 - Cristi Diaconescu
好的,還有一個:在上面的例子中, no_ext 是Windows資源管理器將在此類文件的“類型”列中顯示的內容。我認為更可讀的描述會更好,所以我用過 "No extension" ,包括雙引號,而不是 no_ext 在上面的命令中。 - Cristi Diaconescu
以下是我為.txt文件設置沒有擴展名的文件的圖標(感謝@grawity指針和想法): assoc "No extension"\DefaultIcon=%SystemRoot%\system32\imageres.dll,-102 - Cristi Diaconescu
這在Windows 10中對我不起作用。有些注意事項:1)它找不到 assoc 在PowerShell中,所以 cmd 是必須的。 2)沒有以管理員身份運行時拋出錯誤,所以我以管理員身份運行。該命令運行時不會拋出錯誤,但似乎沒有做任何事情。之後我重新啟動了。 - JamesFaix


來自Windows IT專業人士

具有擴展名的普通文件可以關聯程序,但是對於沒有擴展名的文件則不是這種情況。如果雙擊一個並選擇一個應用程序並選中該框以始終使用該應用程序,則會忽略該應用程序,並且每次選擇文件時都必須選擇該應用程序。

您可以使用註冊表強制執行此操作:

  • 啟動註冊表編輯器(regedit.exe)
  • 移至HKEY_CLASSES_ROOT
  • 從編輯菜單中選擇新建 - 密鑰
  • 輸入名稱“。”然後按Enter鍵(不要輸入引號)
  • 選擇新的'。'鍵
  • 雙擊(默認)值
  • 更改為用於打開的HKEY_CLASSES_ROOT,例如notEPAD用於notepad.exe應用程序NOTEPAD
  • 單擊確定

alt text

如果您現在雙擊沒有擴展名的文件,它將打開並選擇應用程序。

要檢查現有應用程序使用的內容,請查看HKEY_CLASSES_ROOT下的條目,例如: HKEY_CLASSES_ROOT.doc使用Word.Document.8,因此如果您希望將此作為默認編輯器,則可以將HKEY_CLASSES_ROOT。(默認)更改為Word.Document.8。

任何避免編輯註冊表的方法如下:

  • 打開資源管理器 - 查看 - 文件夾選項... - 文件類型 - 新類型:
  • 類型描述:文字(任何描述,你可以輸入)
  • 相關延期:。 (只是一段時間)
  • 行動: - 新......
  • 行動:開放
  • 用於執行操作的應用程序:c:\ winnt \ notepad.exe
  • 單擊確定,然後再次確定

24
2017-07-27 13:13



以上信息有問題。我將.xml文件設置為使用Notepad ++打開,但.xml的(默認)條目設置為xmlfile ... - Piotr Dobrogost
我真的不明白你的意思,但我恐怕不知道解決方案...... - Ivo Flipse♦
@Piotr:如果是默認條目 HKCR\.xml 是 xmlfile,這意味著shell(Explorer)需要去 HKCR\xmlfile 並從中讀取信息 那 鍵。 - grawity
@Ivo當我查看註冊表中的.txt條目以檢查它的外觀(我有Notepad ++打開的.txt文件)時,默認條目具有“txtfile”值。此註冊表項中沒有任何Notepad ++的痕跡。我錯過了什麼? - Piotr Dobrogost
你的意思是它現在不使用Notepad ++嗎?如果您知道擴展名或自己創建擴展名,則應該可以將其設置為NotePad - Ivo Flipse♦


這是.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"

14
2017-07-27 13:16



上述信息有問題。當我單擊新創建的.reg文件時,我得到“指定的文件不是註冊表腳本”錯誤。 - Piotr Dobrogost
道歉Piotr,現在試試,我在它的頂部添加了另一行。 - Pauk
這在資源管理器中有效,但在Total Commander中不起作用,在這方面,它應該與Explorer的行為相同(並且始終具有)。有什麼想法嗎? - Piotr Dobrogost
你應該在Windows中為每個未知文件設置文件關聯的想法是瘋了。幹得好先生! - Steven Penny
在win7中驗證,有效。所以不需要單獨的./鍵。 - jiggunjer


大多數這些解決方案在Windows 8.1上對我不起作用。我通過執行以下操作使其工作(這應該適用於Windows 7和Windows 10):

  1. 按照hasnj的解決方案:首先打開一個提升的命令窗口並輸入

    assoc .="No Extension"
    ftype "No Extension"="C:\path\to\my editor.exe" "%1"
    
  2. 打開註冊表並導航到

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

    右鍵單擊並添加一個名為的新密鑰 UserChoice 如果它還不存在。

  3. 在新的UserChoice鍵中,右鍵單擊和 創建一個新的字符串值Progid將其值設置為“無擴展” (沒有雙引號)。


5
2017-07-10 06:15



不幸的是,這在Windows 8.1上不起作用。之後我嘗試殺死並重新啟動explorer.exe - 我還需要做些什麼嗎?在您提到的HCU條目中,我現在有 OpenWithList, OpenWithProgids 和我添加的那個, UserChoice。 - Conan
文章中可能的關鍵錯誤 3。  No Extention 應該 No Extension? - JosefZ


Pauk的答案對我不起作用,我不得不使用:

Windows註冊表編輯器版本5.00

[HKEY_CLASSES_ROOT。]   @ =“沒有擴展”

[HKEY_CLASSES_ROOT \無延期]

[HKEY_CLASSES_ROOT \ No Extension \ Shell]

[HKEY_CLASSES_ROOT \ No Extension \ Shell \ Open]

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

注意exe路徑上的雙反斜杠。


2
2018-04-02 16:30



這是對我有用的。關鍵是雙反斜杠。 - ontherocks


其他答案有點過時了。這是一個適用於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"

1
2017-08-14 11:21



請將來在現場包含最相關的部分,而不僅僅是提供鏈接。謝謝。 - slhck


您也可以使用NirSoft FileTypesManager

FileTypesMan是Windows的“文件夾選項”中“文件類型”選項卡的替代選項。

FileTypesMan還允許您輕鬆編輯每種文件類型的屬性和標誌,並允許您添加,編輯和刪除文件類型中的操作。


0
2018-02-09 10:00






我在IE9中打開PDF文件時遇到問題,是IE9(舊程序需要)。 PDF文件由Javascript生成並在瀏覽器中返回 應用程序/ PDF格式 內容類型,這是好的,但文件名 “沒有”,這很糟糕。 IE8 允許您選擇保存,取消和打開並理解 Mime類型。由於某些原因, IE9 才不是。因此,您必須每次都選擇使用PDF閱讀器打開它。

我的解決方案:使用這篇文章我已經為沒有擴展名的文件建立了文件關聯。首先我將其映射到 愛看閱讀器,工作正常但限制了打開沒有擴展名的文件的可能性。所以,我選擇了 IE瀏覽器 作為沒有擴展名的文件的默認查看器。這樣,如果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/


0
2017-10-06 15:39