Bagaimana cara "membujuk" program membuka file .lnk aktual di Windows 7?

37

Sebuah .lnkberkas di Windows adalah file yang sebenarnya dimaksudkan untuk menjadi jalan pintas ke file lain. Namun, saya benar-benar ingin melihat konten pada .lnkfile itu sendiri. Saya menemukan itu benar-benar mustahil untuk melakukannya; tidak peduli apa yang saya coba, aplikasi saya membuka konten file yang ditunjuknya (seret / lepas ke editor teks atau hex, file | open from text atau hex editor, dll.)

Apakah ada cara agar saya dapat memberi tahu program untuk benar - benar membuka file .lnk alih-alih file yang ditunjuknya?

Jez
sumber
3
Anda selalu dapat mengubah nama menjadi .txt atau sesuatu. Biasanya ini tidak menyebabkan kehilangan data apa pun.
Jon
1
@Chipperyman Kecuali itu tidak berhasil. Anda tidak dapat dengan mudah mengganti nama .lnkfile dengan ekstensi baru.
287352

Jawaban:

19

Membuka pintasan

Untuk mengedit pintasan, Anda jelas harus membukanya terlebih dahulu, dan itu terbukti rumit. Dalam beberapa kasus, Anda dapat memaksa program untuk memuat file pintasan dengan menggunakan argumen baris perintah:

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

Apakah target tautan atau file pintasan yang sebenarnya dimuat tergantung pada program. Berikut adalah daftar (tanpa urutan tertentu) dari beberapa editor hex gratis yang mendukung mereka di luar kotak:


Penanganan masalah

Jika Anda tidak dapat memuat konten file cara pintas, Anda dapat membuka prompt perintah dan mengganti nama .lnkfile ke ekstensi yang berbeda, tidak ada seperti .lne:

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

Jika Anda memiliki banyak file, Anda juga dapat mengganti nama semuanya sekaligus:

ren *.lnk *.lne

Anda kemudian dapat memperlakukan pintasan tersebut seperti file biasa. Setelah selesai, pastikan untuk mengganti namanya kembali untuk mengembalikan fungsi mereka yang biasa.


Informasi tambahan

Pintasan, atau tautan shell , berisi informasi metadata yang digunakan untuk mengakses target tautan tertentu . Ini diurai dan ditafsirkan oleh shell Windows. Dari dokumentasi resmi:

Struktur tautan shell menyimpan berbagai informasi yang berguna bagi pengguna akhir, termasuk:

  • Pintasan keyboard yang dapat digunakan untuk meluncurkan aplikasi.

  • Komentar deskriptif.

  • Pengaturan yang mengontrol perilaku aplikasi.

  • Data opsional disimpan di bagian data tambahan .

Sumber: [MS-SHLLINK]: Shell Link (.LNK) Format File Biner - Tinjauan Umum

Pintasan disimpan sebagai file biner, dan tidak dapat diedit menggunakan editor teks standar. .lnkFile tipikal terlihat seperti ini secara internal:

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   .Ê..š..........

Dua puluh byte pertama selalu yang berikut:

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

Bacaan lebih lanjut

and31415
sumber
Menggunakan HxD untuk membukanya melalui File | Opensebenarnya tampaknya telah membuka .lnkfile. Terima kasih.
Jez
@ Jo, saya telah memperbarui posting saya untuk memasukkan beberapa informasi tambahan. Beri tahu saya jika Anda memiliki pertanyaan lebih lanjut.
and31415
16

Saya sudah mencoba ini dan berfungsi untuk saya di Windows 8.1:

Membuka LNKfile di Notepad:

  • Cukup seret dan taruh di jendela Notepad. Jika Anda membukanya dari Opendialog, Notepad akan membuka EXEfile yang ditunjuk oleh LNKfile tersebut.

Membuka LNKfile dalam hex editor HxD :

  • Buka mereka seperti halnya file apa pun menggunakan dialog Buka ( FileOpen)

Membuka LNKfile menggunakan command prompt:

  • Arahkan ke folder yang berisi LNKfile dan ketik perintah: TYPE SHORTCUTNAME.LNK

Membuka LNKfile di hampir semua program:

  • Mulai prompt perintah, navigasikan ke folder tempat program berada, gunakan perintah: PROGRAM_NAME.EXE "path to LNK file"
Vinayak
sumber
8

Inti dari sebuah file .lnk adalah untuk Windows untuk memperlakukannya sebagai link ke file lain sehingga harus sulit untuk mengedit!

Mungkin akan membantu jika Anda menjelaskan MENGAPA Anda ingin mengeditnya. Anda dapat mengubah pengaturan file .lnk dengan mengklik kanan dan memilih Properties .

Jika Anda benar-benar ingin mengeditnya, Anda memerlukan alat khusus. Ada beberapa di antaranya termasuk:

NB: Saya belum mencoba semua ini, cukup cari di Google.

MEMPERBARUI:

Tidak tahu mengapa saya tidak memikirkan ini sebelumnya, tetapi Anda dapat mengedit properti melalui PowerShell. Dari jawaban sebelumnya di 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

Karena ini menggunakan objek Shell COM, Anda juga bisa melakukan ini dengan WSH atau bahkan VBA di Office!

Julian Knight
sumber
2
Saya ingin mengedit kontennya, lebih disukai di hex editor, karena saya pikir itu mungkin rusak dan saya tidak percaya Explorer untuk memberi tahu saya dengan benar isinya.
Jez
Saya kira menciptakan itu keluar kemudian? Jika demikian, coba salah satu editor meskipun saya tidak yakin apa yang akan merusaknya.
Julian Knight
1
Yah, tidak pernah sulit untuk mengedit, setidaknya di Windows XP. Sebenarnya lebih sulit meyakinkan sebuah program untuk memperlakukannya sama dengan symlink. Menjalankan aplikasi konsol apa pun, misalnya edit, dengan argumen path to shortcut akan membuka file shortcut. Program yang memperlakukan pintasan mirip dengan symlink melakukan parse sendiri (mungkin melalui fungsi shell). Apakah Windows terpaksa menggunakan symlink yang terlihat seperti jalan pintas setelah XP?
Ruslan
Harga kemajuan! Tidak banyak gunanya memiliki mekanisme untuk menentukan tautan yang diabaikan oleh sebagian besar aplikasi. Saya tidak tahu banyak alasan untuk perlu mengedit .lnk secara langsung.
Julian Knight
3
@JulianKnight Saya pernah menggunakannya untuk membuat mereka secara terprogram untuk penempatan di folder yang bertindak sebagai indeks. Saya harus mengasumsikan tidak ada hak untuk menginstal perangkat lunak, tetapi kami sudah menggunakan VBA. Memodifikasi templat .lnk terbukti lebih mudah daripada membuatnya dari awal.
Chris H
4

File .LNK ditafsirkan oleh shell. Jika Anda membuka prompt perintah dan memanggil alat pengeditan Anda (katakan saja Notepad misalnya) menggunakan file .LNK sebagai argumen, yang harus memotong shell dan membuka konten file .LNK itu sendiri.

notepad.exe shortcut.lnk
Wes Sayeed
sumber
Tidak, itu tidak berhasil. Ini membuka file .lnkpoin ke.
Jez
Aplikasi apa yang Anda coba buka tautannya?
Wes Sayeed
3
Itu tidak benar. Saya sudah mencoba jawaban ini dan itu berhasil.
Vinayak
3
@Vinayak Itu pernyataan yang cukup berani. Ini mungkin bekerja untuk Anda dalam situasi Anda menggunakannya tetapi mungkin tidak berhasil untuk Jez.
Jon
1

Jika Anda menggunakan CMD untuk menjalankan program dengan file tautan sebagai parameter, parameter tersebut diteruskan secara verbatim ke program. Terserah program untuk memutuskan bagaimana menangani tautan.

Saya telah menguji ini dengan FRHED , hex editor freeware (dan portable): ketika Anda menjalankannya dari baris perintah, melewati tautan sebagai parameter, ia menanyakan apakah Anda ingin membuka file yang ditautkan ke ( Ya ), tautan itu sendiri ( Tidak ), atau Batal .

Anehnya, jika Anda menggunakan Buka dalam menu File FRHED , itu membuka file target tanpa bertanya.

Pada XP saya telah FRHED di menu konteks SendTo saya , dan itu bekerja dengan cara yang sama seperti CMD . Saya membayangkan Win7 serupa (saya menggunakan sistem Win7 untuk aplikasi khusus, dan saya akan melakukan tes sederhana di atasnya, seperti di atas, tapi saya tidak mengacaukan konfigurasinya).

AFH
sumber
1
Itu bukan Windows yang meminta Anda. Itu Frhed menanyakan apa yang harus kamu lakukan
Vinayak
Benar sekali: konyol saya - saya akan mengubah jawaban saya.
AFH
Saya menemukan menempatkan Notepad ke SendTomenu saya sangat berguna, membiarkan saya membuka file apa pun (termasuk pintasan) di Notepad.
Scott
Pengamatan akhir (?): Program tampilan atau edit berbasis DOS akan selalu membuka tautan, tidak pernah menjadi target, karena fungsi buka file DOS tidak tahu apa-apa tentang tautan, jadi tidak ada penanganan khusus untuknya, tidak seperti file Windows yang dibuka .
AFH
1

Jika Anda memiliki alasan untuk mengedit file seperti itu sering, tambahkan pintasan ke notepad.exe ke folder SendTo Anda (Di Win 7: C: \ Users \ USER \ AppData \ Roaming \ Microsoft \ Windows \ SendTo). Ini membuat "Kirim ke notepad.exe" tersedia dari Rt Anda. Klik menu konteks. File .ink akan terbuka, dan dapat diedit, dan disimpan di notepad.exe.

pengguna1977596
sumber
0

File .lnk hanyalah file sampai komponen tingkat yang lebih tinggi seperti Explorer.EXE memberikan maning kepada mereka. Pada tingkat yang lebih rendah (NTFS), mereka masih memiliki struktur normal termasuk aliran data. Secara khusus, seluruh konten ada di foo.lnk::$DATAarus. Tidak semua alat level yang lebih tinggi akan mengenali sintaks itu. Jika mereka menganggap itu nama file yang aneh dan meneruskannya, mereka akan mendapatkan konten .lnk.

Misalnya pada baris perintah MORE < foo.lnk::$DATA > conakan mencetak data, tetapi ini sedikit omong kosong (bagiannya biner)

MSalters
sumber