Làm thế nào để tôi thuyết phục các chương trình của mình mở một tập tin .lnk thực tế trong Windows 7?


37

Một .lnktệp trong Windows là một tệp thực tế dự định là một lối tắt đến một tệp khác. Tuy nhiên, tôi thực sự muốn xem nội dung trên .lnktệp. Tôi thấy nó thực sự không thể làm như vậy; bất kể tôi cố gắng gì, các ứng dụng của tôi đang mở nội dung của tệp mà nó trỏ tới (kéo / thả vào trình soạn thảo văn bản hoặc hex, tệp | mở từ văn bản hoặc trình soạn thảo hex, v.v.)

Có cách nào để tôi có thể bảo một chương trình thực sự mở tệp .lnk thay vì tệp mà nó trỏ tới không?


3
Bạn luôn có thể đổi tên nó thành .txt hoặc một cái gì đó. Thông thường, điều này không làm cho nó mất bất kỳ dữ liệu.
Jon

1
@Chipperyman Ngoại trừ việc đó không hoạt động. Bạn không thể dễ dàng đổi tên .lnkcác tập tin với một phần mở rộng mới.
287352

Câu trả lời:


19

Phím tắt mở

Để chỉnh sửa một phím tắt, rõ ràng bạn cần phải mở nó trước, và điều đó chứng tỏ là khó. Trong một số trường hợp, bạn có thể buộc các chương trình tải các tệp lối tắt bằng cách sử dụng đối số dòng lệnh:

"X:\Path\to\program.exe" "X:\my shortcut.lnk"

Dù mục tiêu liên kết hoặc tập tin phím tắt thực tế được tải tùy thuộc vào chương trình. Đây là danh sách (không theo thứ tự cụ thể) của một số trình soạn thảo hex miễn phí hỗ trợ chúng ra khỏi hộp:


Cách giải quyết

Trong trường hợp bạn không thể tải nội dung của tệp lối tắt, bạn có thể mở dấu nhắc lệnh và đổi tên .lnktệp thành một phần mở rộng khác, không tồn tại, chẳng hạn như .lne:

cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"

Nếu bạn có nhiều tệp, bạn cũng có thể đổi tên tất cả chúng cùng một lúc:

ren *.lnk *.lne

Sau đó, bạn sẽ có thể xử lý các phím tắt đó giống như các tệp thông thường. Khi bạn đã hoàn tất, hãy đảm bảo đổi tên chúng trở lại để khôi phục chức năng thông thường của chúng.


Thông tin thêm

Một phím tắt, hoặc liên kết shell , chứa thông tin siêu dữ liệu được sử dụng để truy cập vào một mục tiêu liên kết cụ thể . Nó được phân tích cú pháp và giải thích bởi trình bao Windows. Từ tài liệu chính thức:

Cấu trúc liên kết shell lưu trữ nhiều thông tin hữu ích cho người dùng cuối, bao gồm:

  • Một phím tắt có thể được sử dụng để khởi chạy một ứng dụng.

  • Một nhận xét mô tả.

  • Cài đặt kiểm soát hành vi ứng dụng.

  • Dữ liệu tùy chọn được lưu trữ trong các phần dữ liệu bổ sung .

Nguồn: [MS-SHLLINK]: Shell Link (.LNK) Định dạng tệp nhị phân - Tổng quan

Các phím tắt được lưu trữ dưới dạng tệp nhị phân và không thể chỉnh sửa bằng trình chỉnh sửa văn bản tiêu chuẩn. Một .lnktập tin điển hình trông giống như thế này trong nội bộ:

00000000  4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00  L...........À...
00000010  00 00 00 46 DC 03 00 02 20 00 00 00 C6 EF 52 BE  ...FÜ... ...ÆïR¾
00000020  10 04 CA 01 C6 EF 52 BE 10 04 CA 01 60 45 8A 67  ..Ê.ÆïR¾..Ê.`EŠg
00000030  20 04 CA 01 00 9A 04 00 00 00 00 00 01 00 00 00   .Ê..š..........

Hai mươi byte đầu tiên luôn là những byte sau:

4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46

đọc thêm


Sử dụng HxD để mở nó thông qua File | Opendường như đã mở .lnktệp. Cảm ơn.
Jez

@Jez Tôi đã cập nhật bài viết của mình để bao gồm một số thông tin bổ sung. Hãy cho tôi biết nếu bạn có thêm bất kỳ câu hỏi nào.
và31415

16

Tôi đã thử điều này và nó hoạt động với tôi trên Windows 8.1:

Mở LNKtệp trong Notepad:

  • Chỉ cần kéo và thả chúng vào cửa sổ Notepad. Nếu bạn mở chúng từ Openhộp thoại, Notepad sẽ mở EXEtệp được trỏ đến bởi LNKtệp.

Mở LNKtệp trong trình soạn thảo hex HxD :

  • Mở chúng như bất kỳ tệp nào bằng hộp thoại Mở ( FileOpen)

Mở LNKtệp bằng dấu nhắc lệnh:

  • Điều hướng đến thư mục chứa các LNKtệp và gõ lệnh: TYPE SHORTCUTNAME.LNK

Mở LNKtệp trong bất kỳ chương trình nào:

  • Bắt đầu dấu nhắc lệnh, điều hướng đến thư mục chứa chương trình, sử dụng lệnh: PROGRAM_NAME.EXE "path to LNK file"

8

Toàn bộ quan điểm của tệp .lnk là dành cho Windows để coi nó là một liên kết đến một tệp khác nên rất khó để chỉnh sửa!

Có lẽ nó sẽ hữu ích nếu bạn mô tả TẠI SAO bạn muốn chỉnh sửa nó. Bạn có thể thay đổi cài đặt của tệp .lnk bằng cách nhấp chuột phải và chọn Thuộc tính .

Nếu bạn thực sự muốn chỉnh sửa nó, bạn cần một công cụ đặc biệt. Có một vài trong số này bao gồm:

Lưu ý: Tôi chưa từng thử bất kỳ thứ nào trong số này, chỉ lấy chúng.

CẬP NHẬT:

Không biết tại sao tôi không nghĩ về điều này trước đây nhưng bạn có thể chỉnh sửa các thuộc tính thông qua PowerShell. Từ câu trả lời trước trên Stack Overflow :

Copy-Item $sourcepath $destination  ## Get the lnk we want to use as a template
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination)  ## Open the lnk
$shortcut.TargetPath = "C:\path\to\new\exe.exe"  ## Make changes
$shortcut.Description = "Our new link"  ## This is the "Comment" field
$shortcut.Save()  ## Save

Vì điều này sử dụng đối tượng Shell COM, bạn cũng có thể làm điều này với WSH hoặc thậm chí VBA trong Office!


2
Tôi muốn chỉnh sửa nội dung của nó, tốt nhất là trong trình soạn thảo hex, vì tôi nghĩ rằng nó có thể bị hỏng và tôi không tin Explorer sẽ cho tôi biết chính xác nội dung của nó.
Jez

Tôi cho rằng tái tạo nó là ra sau đó? Nếu vậy, hãy thử một trong các trình soạn thảo mặc dù tôi không chắc điều gì đã làm hỏng nó.
Julian Knight

1
Chà, chưa bao giờ khó chỉnh sửa, ít nhất là trong Windows XP. Trên thực tế khó hơn để thuyết phục một chương trình đối xử với nó tương tự như một liên kết tượng trưng. Chạy bất kỳ ứng dụng giao diện điều khiển nào, ví dụ edit, với đối số đường dẫn đến lối tắt sẽ mở tệp lối tắt. Các chương trình xử lý phím tắt tương tự như một liên kết tượng trưng tự phân tích cú pháp (có thể thông qua các hàm shell). Windows đã sử dụng các liên kết tượng trưng trông giống như các phím tắt sau XP?
Ruslan

Giá của tiến độ! Không có nhiều điểm trong việc có một cơ chế để xác định các liên kết mà hầu hết các ứng dụng sau đó bỏ qua. Tôi không biết nhiều lý do cần chỉnh sửa trực tiếp .lnk.
Julian Knight

3
@JulianKnight Tôi đã sử dụng một lần để tạo chúng theo lập trình cho vị trí trong một thư mục hoạt động như một chỉ mục. Tôi đã phải thừa nhận không có quyền cài đặt phần mềm, nhưng chúng tôi đã sử dụng VBA. Sửa đổi một mẫu .lnk tỏ ra dễ dàng hơn so với việc tạo một mẫu từ đầu.
Chris H

4

Các tập tin .LNK được giải thích bởi trình bao. Nếu bạn mở một dấu nhắc lệnh và gọi công cụ chỉnh sửa của mình (ví dụ như giả sử Notepad) bằng cách sử dụng tệp .LNK làm đối số, thì nên bỏ qua trình bao và mở nội dung của tệp .LNK.

notepad.exe shortcut.lnk

Không, điều đó không làm việc. Nó mở ra các tập tin các .lnkđiểm đến.
Jez

Ứng dụng nào bạn đang cố gắng để mở liên kết lên?
Wes Sayeed

3
Điều đó là không chính xác. Tôi đã thử câu trả lời này và nó hoạt động.
Vinayak

3
@Vinayak Đó là một tuyên bố khá táo bạo. Nó có thể hoạt động cho bạn trong tình huống bạn đang sử dụng nhưng nó có thể không hoạt động với Jez.
Jon

1

Nếu bạn sử dụng CMD để chạy một chương trình với tệp liên kết làm tham số, tham số đó được truyền nguyên văn cho chương trình. Tùy thuộc vào chương trình để quyết định cách xử lý liên kết.

Tôi đã thử nghiệm điều này với FRHED , trình soạn thảo hex miễn phí (và di động): khi bạn chạy nó từ dòng lệnh, truyền một liên kết dưới dạng tham số, nó sẽ nhắc bạn xem bạn có muốn mở tệp được liên kết đến ( ) không, chính liên kết đó ( Không ) hoặc Hủy bỏ .

Điều kỳ lạ là, nếu bạn sử dụng Mở trong menu Tệp FRHED , nó sẽ mở tệp đích mà không cần hỏi.

Trên XP, tôi đã FRHED trong menu ngữ cảnh SendTo của mình và nó hoạt động tương tự như CMD . Tôi tưởng tượng Win7 cũng tương tự (tôi sử dụng hệ thống Win7 cho một ứng dụng chuyên dụng và tôi sẽ thực hiện các thử nghiệm đơn giản trên nó, như trên, nhưng tôi không làm hỏng cấu hình của nó).


1
Đó không phải là Windows nhắc bạn. Đó là Frhed hỏi bạn phải làm gì
Vinayak

Hoàn toàn đúng: ngớ ngẩn với tôi - Tôi sẽ thay đổi câu trả lời của tôi.
AFH

Tôi thấy việc đưa Notepad vào SendTomenu của mình rất hữu ích, cho phép tôi mở bất kỳ tệp nào (bao gồm các phím tắt) trong Notepad.
Scott

Quan sát cuối cùng (?): Bất kỳ chương trình xem hoặc chỉnh sửa dựa trên DOS nào sẽ luôn mở liên kết, không bao giờ là mục tiêu, vì chức năng mở tệp DOS không biết gì về liên kết, do đó không xử lý đặc biệt cho chúng, không giống như mở tệp Windows .
AFH

1

Nếu bạn có lý do để chỉnh sửa các tệp đó thường xuyên, hãy thêm lối tắt vào notepad.exe vào thư mục SendTo của bạn (Trong Win 7: C: \ Users \ USER \ AppData \ Roaming \ Microsoft \ Windows \ SendTo). Điều này làm cho "Gửi tới notepad.exe" có sẵn từ Rt của bạn. Nhấp vào menu ngữ cảnh. Tệp .ink sẽ mở và có thể được chỉnh sửa và lưu trong notepad.exe.


0

Các tệp .lnk chỉ là các tệp cho đến khi một thành phần cấp cao hơn như Explorer.EXE gán một thao tác cho chúng. Ở mức thấp hơn (NTFS), chúng vẫn có cấu trúc bình thường bao gồm luồng dữ liệu. Đặc biệt, toàn bộ nội dung là trong foo.lnk::$DATAluồng. Không phải tất cả các công cụ cấp cao hơn sẽ nhận ra cú pháp đó. Nếu họ chỉ cho rằng đó là một tên tệp kỳ lạ và truyền lại, họ sẽ nhận được nội dung .lnk.

Ví dụ: trên dòng lệnh MORE < foo.lnk::$DATA > consẽ in dữ liệu, nhưng nó hơi vô nghĩa (các phần là nhị phân)

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.