ฉันจะ“ เปิดโปรแกรม” เปิดไฟล์. lnk จริงใน Windows 7 ได้อย่างไร


37

.lnkแฟ้มใน Windows เป็นไฟล์จริงตั้งใจจะให้เป็นทางลัดไปยังไฟล์อื่น อย่างไรก็ตามฉันต้องการดูเนื้อหาใน.lnkไฟล์เอง ฉันพบว่ามันเป็นไปไม่ได้ที่จะทำเช่นนั้น ไม่ว่าฉันจะพยายามอะไรแอปพลิเคชันของฉันกำลังเปิดเนื้อหาของไฟล์ที่ชี้ไปที่ (ลาก / วางลงใน text หรือ hex editor, file | open จาก text หรือ hex editor, ฯลฯ )

มีวิธีใดบ้างที่ฉันสามารถบอกให้โปรแกรมเปิดไฟล์. lnkแทนไฟล์ที่ชี้ไป


3
คุณสามารถเปลี่ยนชื่อเป็น. txt หรืออะไรก็ได้ โดยทั่วไปแล้วสิ่งนี้จะไม่ทำให้ข้อมูลสูญหาย
Jon

1
@ Chipperyman ยกเว้นว่าใช้ไม่ได้ คุณไม่สามารถเปลี่ยนชื่อ.lnkไฟล์ได้อย่างง่ายดายด้วยส่วนขยายใหม่
287352

คำตอบ:


19

การเปิดทางลัด

ในการแก้ไขทางลัดคุณต้องเปิดมันก่อนอย่างเห็นได้ชัดและพิสูจน์ได้ว่าเป็นเรื่องยุ่งยาก ในบางกรณีคุณสามารถบังคับให้โปรแกรมโหลดไฟล์ทางลัดโดยใช้อาร์กิวเมนต์บรรทัดคำสั่ง:

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

ไม่ว่าจะโหลดลิงค์เป้าหมายหรือไฟล์ช็อตคัทจริงหรือไม่นั้นขึ้นอยู่กับโปรแกรม นี่คือรายการ (ตามลำดับโดยเฉพาะ) ของตัวแก้ไข hex ฟรีบางตัวที่สนับสนุนพวกเขานอกกรอบ:


วิธีแก้ปัญหา

ในกรณีที่คุณไม่สามารถโหลดเนื้อหาของไฟล์ทางลัดคุณสามารถเปิดพรอมต์คำสั่งและเปลี่ยนชื่อ.lnkไฟล์เป็นส่วนขยายอื่นที่ไม่มีอยู่จริงเช่น.lne:

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

หากคุณมีหลายไฟล์คุณสามารถเปลี่ยนชื่อทั้งหมดได้ในครั้งเดียว:

ren *.lnk *.lne

จากนั้นคุณจะสามารถจัดการกับทางลัดเหล่านั้นได้เหมือนกับไฟล์ทั่วไป เมื่อเสร็จแล้วตรวจสอบให้แน่ใจว่าได้เปลี่ยนชื่อพวกเขากลับมาเพื่อเรียกคืนการทำงานตามปกติ


ข้อมูลเพิ่มเติม

ทางลัดหรือการเชื่อมโยงเปลือกมีข้อมูลเมตาดาต้าที่ใช้ในการเข้าถึงโดยเฉพาะการเชื่อมโยงเป้าหมาย มันวิเคราะห์และตีความโดยเชลล์ของ Windows จากเอกสารอย่างเป็นทางการ:

โครงสร้างลิงก์เชลล์เก็บข้อมูลต่าง ๆ ที่เป็นประโยชน์ต่อผู้ใช้ปลายทางรวมถึง:

  • แป้นพิมพ์ลัดที่สามารถใช้เพื่อเรียกใช้แอปพลิเคชัน

  • ความคิดเห็นที่เป็นคำอธิบาย

  • การตั้งค่าที่ควบคุมพฤติกรรมแอปพลิเคชัน

  • ข้อมูลเพิ่มเติมที่จัดเก็บในส่วนข้อมูลเพิ่มเติม

แหล่งที่มา: [MS-SHLLINK]: เชลล์ลิงก์ (.LNK) รูปแบบไฟล์ไบนารี - ภาพรวม

ทางลัดถูกเก็บเป็นไฟล์ไบนารีและไม่สามารถแก้ไขได้โดยใช้โปรแกรมแก้ไขข้อความมาตรฐาน .lnkไฟล์ทั่วไปดูเหมือนว่าภายในนี้:

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

ยี่สิบไบต์แรกจะเป็นค่าต่อไปนี้:

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

อ่านเพิ่มเติม


การใช้ HxD เพื่อเปิดผ่านFile | Openจริงดูเหมือนว่าจะเปิด.lnkไฟล์ ขอบคุณ
Jez

@Jez ฉันได้อัปเดตโพสต์ของฉันเพื่อรวมข้อมูลพิเศษบางอย่างแล้ว แจ้งให้เราทราบหากคุณมีคำถามเพิ่มเติม
and31415

16

ฉันได้ลองแล้วมันใช้งานได้กับ Windows 8.1:

การเปิดLNKไฟล์ใน Notepad:

  • เพียงลากและวางลงในหน้าต่าง Notepad หากคุณเปิดจากOpenกล่องโต้ตอบ Notepad จะเปิดEXEไฟล์ที่ชี้ไปตามLNKไฟล์

การเปิดLNKไฟล์ในโปรแกรมแก้ไข HxD hex :

  • เปิดไฟล์เช่นเดียวกับที่คุณใช้ไฟล์ใด ๆ โดยใช้กล่องโต้ตอบเปิด ( FileOpen)

การเปิดLNKไฟล์โดยใช้พรอมต์คำสั่ง:

  • นำทางไปยังโฟลเดอร์ที่มีLNKไฟล์และพิมพ์คำสั่ง: TYPE SHORTCUTNAME.LNK

การเปิดLNKไฟล์ในโปรแกรมใดก็ได้:

  • เริ่มพรอมต์คำสั่งนำทางไปยังโฟลเดอร์ที่โปรแกรมอยู่ใช้คำสั่ง: PROGRAM_NAME.EXE "path to LNK file"

8

จุดรวมของไฟล์. lnk สำหรับ Windows ถือว่าเป็นลิงก์ไปยังไฟล์อื่นดังนั้นจึงควรแก้ไขได้ยาก!

อาจจะช่วยถ้าคุณอธิบายว่าทำไมคุณต้องการแก้ไข คุณสามารถเปลี่ยนการตั้งค่าของไฟล์ .lnk โดยการคลิกขวาเลือกProperties

หากคุณต้องการแก้ไขคุณต้องมีเครื่องมือพิเศษ มีบางอย่างรวมถึง:

NB: ฉันไม่ได้ลองทำสิ่งเหล่านี้

UPDATE:

ไม่ทราบว่าทำไมฉันไม่เคยคิดถึงเรื่องนี้มาก่อน แต่คุณสามารถแก้ไขคุณสมบัติผ่าน PowerShell ได้ จากคำตอบก่อนหน้านี้ของ 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

เนื่องจากสิ่งนี้ใช้วัตถุ Shell COM คุณสามารถทำได้ด้วย WSH หรือแม้แต่ VBA ใน Office!


2
ฉันต้องการแก้ไขเนื้อหาโดยเฉพาะอย่างยิ่งในโปรแกรมแก้ไข hex เพราะฉันคิดว่ามันอาจจะเสียหายและฉันไม่เชื่อว่า Explorer จะบอกเนื้อหาให้ถูกต้อง
Jez

ฉันคิดว่ามันสร้างมันออกมาแล้ว? ถ้าเป็นเช่นนั้นลองใช้หนึ่งในบรรณาธิการแม้ว่าฉันไม่แน่ใจว่าสิ่งใดที่จะทำให้เกิดความเสียหาย
Julian Knight

1
มันไม่เคยยากที่จะแก้ไขอย่างน้อยใน Windows XP ในความเป็นจริงมันยากที่จะโน้มน้าวให้โปรแกรมจัดการกับมันคล้ายกับ symlink การเรียกใช้แอพคอนโซลใด ๆ เช่นeditด้วยอาร์กิวเมนต์ของพา ธ ไปยังทางลัดจะเป็นการเปิดไฟล์ทางลัด โปรแกรมที่จัดการกับทางลัดคล้ายกับ symlink จะแยกตัวมันเอง (อาจผ่านฟังก์ชั่นเชลล์) Windows ใช้วิธีการเชื่อมโยงแบบ Symbian ที่ดูเหมือนเป็นทางลัดหลังจาก XP หรือไม่?
Ruslan

ราคาของความคืบหน้า! ไม่ค่อยมีจุดในการมีกลไกในการกำหนดลิงก์ที่แอพส่วนใหญ่จะไม่สนใจ ฉันไม่รู้สาเหตุหลายประการที่ต้องแก้ไข. lnk โดยตรง
Julian Knight

3
@JulianKnight ฉันมีการใช้งานหนึ่งครั้งเพื่อสร้างมันโดยทางโปรแกรมสำหรับการจัดวางในโฟลเดอร์ที่ทำหน้าที่เป็นดัชนี ฉันต้องสมมติว่าไม่มีสิทธิ์ในการติดตั้งซอฟต์แวร์ แต่เราใช้ VBA อยู่แล้ว การแก้ไขเท็มเพลต. lnk พิสูจน์ได้ง่ายกว่าการสร้างขึ้นใหม่ตั้งแต่ต้น
Chris H

4

ไฟล์. LNN ถูกตีความโดยเชลล์ หากคุณเปิดพรอมต์คำสั่งและเรียกใช้เครื่องมือแก้ไขของคุณ (เช่นสมมติว่า Notepad เป็นตัวอย่าง) โดยใช้ไฟล์. LNK เป็นอาร์กิวเมนต์ซึ่งควรหลีกเลี่ยงเชลล์และเปิดเนื้อหาของไฟล์. LNK เอง

notepad.exe shortcut.lnk

ไม่นั่นไม่ได้ผล มันเปิดไฟล์ที่.lnkชี้ไป
Jez

คุณพยายามเปิดแอปพลิเคชันใดอยู่
Wes Sayeed

3
มันไม่ถูกต้อง ฉันลองคำตอบนี้แล้วมันใช้งานได้
Vinayak

3
@Vayayak นั่นเป็นคำสั่งที่ค่อนข้างดี อาจใช้งานได้กับคุณในสถานการณ์ที่คุณใช้งานอยู่ แต่อาจใช้ไม่ได้กับ Jez
Jon

1

ถ้าคุณใช้CMDเพื่อรันโปรแกรมด้วยไฟล์ลิงค์เป็นพารามิเตอร์พารามิเตอร์นั้นจะถูกส่งต่อคำต่อคำไปยังโปรแกรม มันขึ้นอยู่กับโปรแกรมที่จะตัดสินใจว่าจะจัดการลิงค์อย่างไร

ฉันได้ทดสอบสิ่งนี้กับFRHEDโปรแกรมแก้ไข hex ฟรีแวร์ (และพกพา): เมื่อคุณเรียกใช้จากบรรทัดคำสั่งผ่านการเชื่อมโยงเป็นพารามิเตอร์จะแจ้งให้คุณทราบว่าคุณต้องการเปิดไฟล์ที่เชื่อมโยงกับ ( ใช่ ) ตัวลิงก์เอง ( ไม่มี ) หรือยกเลิก

ถ้าคุณใช้ Open ในเมนูFRHED File มันจะเปิดไฟล์เป้าหมายโดยไม่ถาม

บน XP ฉันได้FRHEDในของฉันSendToเมนูบริบทและที่ทำงานในลักษณะเดียวกันเป็นCMD ฉันคิดว่า Win7 นั้นคล้ายกัน (ฉันใช้ระบบ Win7 สำหรับแอพพลิเคชั่นเฉพาะและฉันจะทำการทดสอบอย่างง่าย ๆ ตามที่กล่าวไว้ข้างต้น แต่ฉันไม่ยุ่งกับการตั้งค่า)


1
นั่นไม่ใช่ Windows ที่จะบอกคุณ นั่นคือ Frhed ถามคุณว่าจะทำอย่างไร
Vinayak

ถูกต้องค่อนข้าง: โง่ของฉัน - ฉันจะเปลี่ยนคำตอบของฉัน
AFH

ผมพบว่าการวางแผ่นจดบันทึกลงในของฉันSendToเมนูที่จะเป็นประโยชน์มากให้ฉันเปิดไฟล์ใด ๆ (รวมทั้งทางลัด) ใน Notepad
สกอตต์

การสังเกตรอบชิงชนะเลิศ (?): โปรแกรมดูหรือแก้ไขใด ๆ ที่ใช้ DOS จะเปิดลิงก์เสมอไม่เคยมีเป้าหมายเนื่องจากฟังก์ชั่นเปิดไฟล์ DOS ไม่ทราบอะไรเกี่ยวกับลิงก์ดังนั้นจึงไม่มีการจัดการพิเศษสำหรับพวกเขา .
AFH

1

หากคุณมีเหตุผลในการแก้ไขไฟล์ดังกล่าวบ่อยครั้งให้เพิ่มทางลัดไปยัง notepad.exe ในโฟลเดอร์ SendTo ของคุณ (ใน Win 7: C: \ Users \ USER \ AppERATA \ Roaming \ Microsoft \ Windows \ SendTo) สิ่งนี้ทำให้ "Send to notepad.exe" พร้อมใช้งานจาก Rt ของคุณ คลิกเมนูบริบท ไฟล์ .ink จะเปิดขึ้นและสามารถแก้ไขและบันทึกใน notepad.exe


0

ไฟล์. lnk เป็นเพียงไฟล์จนกว่าคอมโพเนนต์ระดับสูงกว่าเช่น Explorer.EXE จะกำหนด maning ให้กับไฟล์เหล่านั้น ที่ระดับต่ำกว่า (NTFS) พวกเขายังคงมีโครงสร้างปกติรวมถึงสตรีมข้อมูล โดยเฉพาะอย่างยิ่งเนื้อหาทั้งหมดอยู่ในfoo.lnk::$DATAกระแส ไม่ใช่เครื่องมือระดับสูงทั้งหมดที่จะรับรู้ไวยากรณ์นั้น หากพวกเขาคิดว่ามันเป็นชื่อไฟล์แปลก ๆ และส่งต่อพวกเขาจะได้รับเนื้อหา. lnk

เช่นในบรรทัดคำสั่งMORE < foo.lnk::$DATA > conจะพิมพ์ข้อมูล แต่มันเป็นเรื่องที่พูดพล่อยๆเล็กน้อย (ชิ้นส่วนเป็นไบนารี)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.