Làm cách nào để đặt chương trình mặc định để mở tệp mà không cần tiện ích mở rộng trong Windows?


107

Cách đặt chương trình mặc định để mở tệp không có một phần mở rộng trong Windows?


Câu trả lời được chấp nhận hoạt động nhưng đồng thời làm cho tính năng khác ngừng hoạt động; Chọn Chương trình mặc định không hoạt động (bị hỏng) trên Windows
Piotr Dobrogost

Tính năng nào ngừng hoạt động?
Danijel

Câu trả lời:


134

Với dòng lệnh:

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

Để cung cấp tín dụng, tôi đã học được điều này từ vim wikia đây đây

Thông tin thêm:

Thay vì "C:\path\to\...", các macro sau có thể hữu ích:

  • %SystemDrive% - cửa sổ ổ đĩa được cài đặt trên, tức là C:\
  • %ProgramFiles% - ví dụ. "C:\Program Files\"
  • %ProgramFiles(x86)% - ví dụ. "C:\Program Files (x86)\"

Bạn sẽ cần phải thoát chúng đúng cách:

ftype "No Extension"=^"^%ProgramFiles(x86)^%\Notepad++\notepad++.exe^" "%1"

Để đặt biểu tượng giống như các tệp .txt (Tôi không làm điều này, vì nó tự động làm cho các biểu tượng của tệp hiển thị dưới dạng tệp Notepad ++):

assoc "No Extension"\DefaultIcon=%SystemRoot%\System32\imageres.dll,-102

Để hoàn tác, bạn có thể đọc assoc /? hoặc là ftype /? thông tin, ví dụ:

ftype "No Extension"=
assoc "No Extension"\DefaultIcon=
assoc .=

4
Lưu ý rằng nếu trình chỉnh sửa của bạn nằm trong thư mục chứa khoảng trắng (chẳng hạn như "C: \ Chương trình tệp"), bạn cần đặt nó vào dấu ngoặc kép. ftype no_ext="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"
GuiSim

10
FWIW, trong Win7 bạn cần chạy cmd là Quản trị viên
Cristi Diaconescu

1
OK, một cái nữa: trong ví dụ trên, no_ext là những gì Windows Explorer sẽ hiển thị trong cột 'Loại' cho các tệp đó. Tôi nghĩ rằng một mô tả dễ đọc hơn sẽ tốt hơn, vì vậy tôi đã sử dụng "No extension" , bao gồm cả dấu ngoặc kép, thay vì no_ext trong các lệnh trên.
Cristi Diaconescu

3
Đây là cách tôi đặt biểu tượng cho các tệp .txt cho các tệp không có phần mở rộng (cảm ơn @grawity cho con trỏ và ý tưởng): assoc "No extension"\DefaultIcon=%SystemRoot%\system32\imageres.dll,-102
Cristi Diaconescu

2
Điều này không hoạt động với tôi trong Windows 10. Một số lưu ý: 1) Nó sẽ không tìm thấy assoc trong PowerShell, vì vậy cmd bắt buộc. 2) Nó bị lỗi khi không chạy với tư cách quản trị viên, vì vậy tôi đã chạy với tư cách quản trị viên. Lệnh chạy mà không đưa ra một lỗi, nhưng dường như không làm gì cả. Tôi cũng khởi động lại sau đó.
JamesFaix

24

Từ Windows IT pro :

Các tệp thông thường có tiện ích mở rộng có thể có chương trình được liên kết tuy nhiên đây không phải là trường hợp với các tệp không có tiện ích mở rộng. Nếu bạn nhấp đúp chuột vào một và chọn một ứng dụng và chọn hộp để luôn sử dụng ứng dụng đó thì nó sẽ bị bỏ qua và mỗi khi bạn chọn một tệp bạn phải chọn ứng dụng đó.

Bạn có thể buộc điều này bằng cách sử dụng sổ đăng ký:

  • Bắt đầu trình chỉnh sửa đăng ký (regedit.exe)
  • Di chuyển đến HKEY_CLASSES_ROOT
  • Từ menu Chỉnh sửa, chọn Mới - Phím
  • Nhập tên của '.' và nhấn Enter (không gõ dấu ngoặc kép)
  • Chọn '.' Mới Chìa khóa
  • Nhấp đúp vào giá trị (Mặc định)
  • Thay đổi thành HKEY_CLASSES_ROOT được sử dụng để mở, ví dụ: NOTEPAD cho ứng dụng notepad.exe NOTEPAD
  • Nhấn vào OK

alt text

Nếu bây giờ bạn nhấp đúp chuột vào một tệp không có phần mở rộng, nó sẽ mở với ứng dụng được chọn.

Để kiểm tra xem ứng dụng hiện có được sử dụng, hãy xem mục nhập của nó trong HKEY_CLASSES_ROOT, ví dụ: HKEY_CLASSES_ROOT.doc sử dụng Word.Document.8 vì vậy nếu bạn muốn đây là trình chỉnh sửa mặc định, bạn sẽ thay đổi HKEY_CLASSES_ROOT. (Mặc định) thành Word.Document.8.

Bất kỳ phương pháp nào tránh sự cần thiết phải chỉnh sửa sổ đăng ký như sau:

  • Mở Explorer - Xem - Tùy chọn thư mục ... - Loại tệp - Loại mới:
  • Mô tả loại: Văn bản (bất kỳ mô tả nào, bạn có thể nhập)
  • Liên kết mở rộng :. (chỉ một khoảng thời gian)
  • Hành động: - mới ...
  • Hành động: mở
  • Ứng dụng được sử dụng để thực hiện hành động: c: \ winnt \ notepad.exe
  • Nhấp vào ok, sau đó ok lại

Có gì đó không đúng với thông tin trên. Tôi có các tệp .xml được đặt để mở bằng Notepad ++ nhưng mục nhập (Mặc định) cho .xml được đặt thành xmlfile ...
Piotr Dobrogost

Tôi thực sự không hiểu ý của bạn, nhưng tôi sợ tôi cũng không biết giải pháp ...
Ivo Flipse

3
@Piotr: Nếu mục nhập mặc định của HKCR\.xmlxmlfile, nó có nghĩa là shell (Explorer) cần phải đi đến HKCR\xmlfile và đọc thông tin từ cái đó Chìa khóa.
grawity

@Ivo Khi tôi xem xét mục .txt trong sổ đăng ký để kiểm tra xem nó trông như thế nào (tôi có tệp .txt được mở bởi Notepad ++), mục nhập mặc định có giá trị "txtfile". Không có dấu vết của Notepad ++ trong khóa đăng ký này. Tôi đang thiếu gì?
Piotr Dobrogost

Bạn có nghĩa là nó không sử dụng Notepad ++ bây giờ? Vì bạn có thể đặt nó làm NotePad nếu bạn biết tiện ích mở rộng hoặc tự tạo tiện ích mở rộng
Ivo Flipse

14

Đây là một ví dụ về tệp .reg để nhận Notepad để mở các phần mở rộng tệp không xác định. Tạo một tệp văn bản mới với phần mở rộng là .reg, cắt và dán tệp này vào đó, sau đó nhấp đúp để chạy và nó sẽ đưa nó vào sổ đăng ký.

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"

Có gì đó không đúng với thông tin trên. Khi tôi nhấp vào tệp .reg mới tạo, tôi gặp lỗi "Tệp được chỉ định không phải là tập lệnh đăng ký".
Piotr Dobrogost

Xin lỗi Piotr, hãy thử ngay bây giờ, tôi đã thêm một dòng nữa vào đầu của nó.
Pauk

Điều này hoạt động trong Explorer nhưng không hoạt động trong Total Commander, nên hoạt động (và luôn luôn) giống hệt với Explorer về vấn đề này. Có suy nghĩ gì không?
Piotr Dobrogost

Ý tưởng rằng bạn nên thiết lập liên kết tệp cho MỌI tệp không xác định trong Windows là điên rồ. Làm tốt lắm thưa ngài!
Steven Penny

xác minh trong win7, công trình. vì vậy không cần một phím ./ riêng biệt.
jiggunjer

5

Hầu hết các giải pháp này không hoạt động với tôi trên Windows 8.1. Tôi đã làm cho nó hoạt động bằng cách làm như sau (điều này cũng sẽ hoạt động cho Windows 7 và Windows 10):

  1. Thực hiện theo giải pháp của hasnj: Đầu tiên mở một cửa sổ lệnh nâng cao và gõ

    assoc .="No Extension"
    ftype "No Extension"="C:\path\to\my editor.exe" "%1"
    
  2. Mở regedit và điều hướng đến

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

    Nhấp chuột phải và thêm một khóa mới được gọi là UserChoice nếu nó không tồn tại

  3. Trong khóa UserChoice mới, nhấp chuột phải và tạo một giá trị chuỗi mới gọi là Progid. Đặt giá trị của nó thành "Không mở rộng" (không có dấu ngoặc kép).


Điều này không làm việc cho tôi trên Windows 8.1 thật không may. Tôi đã thử giết và khởi động lại explorer.exe sau đó - tôi còn cần phải làm gì nữa không? Trong mục HCU bạn đã đề cập, bây giờ tôi có OpenWithList, OpenWithProgids và một trong những tôi đã thêm, UserChoice.
Conan

1
Lỗi chính có thể có trong bài viết 3. No Extention nên là No Extension?
JosefZ

2

Câu trả lời của Pauk không hiệu quả với tôi, thay vào đó tôi phải sử dụng:

Windows Registry Editor Phiên bản 5,00

[HKEY_CLASSES_ROOT.]   @ = "Không gia hạn"

[HKEY_CLASSES_ROOT \ Không gia hạn]

[HKEY_CLASSES_ROOT \ Không có tiện ích mở rộng \ Shell]

[HKEY_CLASSES_ROOT \ Không có tiện ích mở rộng \ Shell \ Open]

[HKEY_CLASSES_ROOT \ Không có tiện ích mở rộng \ Shell \ Open \ Command]   @ = "C: \\ pathtoexe \\ yourexe.exe% 1"

Lưu ý dấu gạch chéo kép trên đường dẫn exe.


Đây là một trong những làm việc cho tôi. Key là dấu gạch chéo kép.
ontherocks

1

Các câu trả lời khác là một chút lỗi thời. Đây là một liên kết đến một liên kết hoạt động cho Windows 7:

Phần mở rộng Shell cho tên tệp không có phần mở rộng tệp

Phần mở rộng Shell cho tên tệp không có phần mở rộng tệp có thể được   đăng ký như sau:

[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"

Xin vui lòng, trong tương lai, bao gồm các phần có liên quan nhất ở đây, trên trang web, thay vì chỉ cung cấp một liên kết. Cảm ơn.
slhck

0

Bạn cũng có thể sử dụng NirSoft FileTypesManager :

FileTypesMan là một thay thế cho tab 'Loại tệp' trong 'Tùy chọn thư mục' của Windows.

FileTypesMan cũng cho phép bạn dễ dàng chỉnh sửa các thuộc tính và cờ của từng loại tệp, cũng như cho phép bạn thêm, chỉnh sửa và xóa các hành động trong một loại tệp.


0

Tôi gặp sự cố khi mở tệp PDF trong IE9, có IE9 (cần thiết cho chương trình cũ). Các tệp PDF được tạo bởi một Javascript và được gửi lại trên trình duyệt dưới dạng ứng dụng / pdf loại nội dung, tốt, nhưng tên tệp "không ai" , đó là xấu. IE8 cho phép bạn chọn Lưu, Hủy và Mở và hiểu MimeType . đối với một số lý do, IE9 không làm. Vì vậy, bạn phải chọn mỗi lần để mở nó bằng trình đọc PDF.

Giải pháp của tôi: sử dụng bài đăng này tôi đã tạo một liên kết tệp cho tệp mà không cần gia hạn. đầu tiên tôi ánh xạ nó tới Đầu đọc Acrobat , hoạt động tốt nhưng hạn chế khả năng mở tệp mà không cần tiện ích mở rộng. Vì vậy, tôi đã chọn trình duyệt web IE là trình xem mặc định của tôi cho các tệp mà không cần gia hạn. Bằng cách này, nếu IE có thể mở nó hoặc biết một plugin hoặc liên kết khác, nó sẽ hoạt động.

Tôi đã thử nghiệm điều này với các tệp "none1" và "none2" trên máy tính để bàn của tôi. "none1" là tệp văn bản có nội dung "xin chào thế giới". "none2" là một tệp pdf.


Đây là của tôi .reg tập tin:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.]
@="htmlfile"

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

- Xem ảnh chụp màn hình

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


0

Không thể tin được là chưa có ai nói điều này. Bạn không cần cung cấp đường dẫn đến trình soạn thảo văn bản của mình như câu trả lời được chấp nhận.

Chỉ cần chạy như sau trong một dấu nhắc lệnh quản trị viên:

assoc .=txtfile
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.