ฉันจะสร้างไฟล์ทางลัด ( .lnk
) ไปยังไฟล์อื่นหรือเรียกใช้งานได้โดยใช้ยูทิลิตี้บรรทัดคำสั่งได้อย่างไร
(.ink file)
เนื่องจากมีความสับสน ฉันแก้ไขคำถามเพื่อสะท้อนความคิดเห็นของ Shantanu แม้ว่าคุณจะมีวิธีในการสร้าง 'ทางลัด' แต่ก็ไม่ได้ตอบคำถามเฉพาะนี้
ฉันจะสร้างไฟล์ทางลัด ( .lnk
) ไปยังไฟล์อื่นหรือเรียกใช้งานได้โดยใช้ยูทิลิตี้บรรทัดคำสั่งได้อย่างไร
(.ink file)
เนื่องจากมีความสับสน ฉันแก้ไขคำถามเพื่อสะท้อนความคิดเห็นของ Shantanu แม้ว่าคุณจะมีวิธีในการสร้าง 'ทางลัด' แต่ก็ไม่ได้ตอบคำถามเฉพาะนี้
คำตอบ:
มีข้อมูลที่มีประโยชน์มากในไซต์นี้: http://ss64.com/nt/shortcut.html
ดูเหมือนว่ามีบางอย่างshortcut.exe
ในชุดทรัพยากรบางอย่างที่ฉันไม่ได้มี
ดังที่เว็บไซต์อื่น ๆ กล่าวถึงไม่มีวิธีการติดตั้งในตัวจากไฟล์แบตช์
แต่คุณสามารถทำได้จากสคริปต์ VB:
ส่วนเพิ่มเติมใน VBscript ด้านล่างนี้ได้รับการใส่ความคิดเห็น:
Set oWS = WScript.CreateObject("WScript.Shell") sLinkFile = "C:\MyShortcut.LNK" Set oLink = oWS.CreateShortcut(sLinkFile) oLink.TargetPath = "C:\Program Files\MyApp\MyProgram.EXE" ' oLink.Arguments = "" ' oLink.Description = "MyProgram" ' oLink.HotKey = "ALT+CTRL+F" ' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2" ' oLink.WindowStyle = "1" ' oLink.WorkingDirectory = "C:\Program Files\MyApp" oLink.Save
ดังนั้นถ้าคุณต้องทำมันจริงๆคุณสามารถทำให้ไฟล์แบตช์ของคุณเขียนสคริปต์ VB ลงบนดิสก์เรียกใช้แล้วลบมันอีกครั้ง ตัวอย่างเช่น:
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%HOMEDRIVE%%HOMEPATH%\Desktop\Hello.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
การเรียกใช้สคริปต์ข้างต้นส่งผลให้มีทางลัดใหม่บนเดสก์ท็อปของฉัน:
นี่คือตัวอย่างที่สมบูรณ์มากขึ้นจากผู้มีส่วนร่วมที่ไม่ระบุชื่อ (อัปเดตด้วยการแก้ไขเล็กน้อย):
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET LinkName=Hello
SET Esc_LinkDest=%%HOMEDRIVE%%%%HOMEPATH%%\Desktop\!LinkName!.lnk
SET Esc_LinkTarget=%%SYSTEMROOT%%\notepad.exe
SET cSctVBS=CreateShortcut.vbs
SET LOG=".\%~N0_runtime.log"
((
echo Set oWS = WScript.CreateObject^("WScript.Shell"^)
echo sLinkFile = oWS.ExpandEnvironmentStrings^("!Esc_LinkDest!"^)
echo Set oLink = oWS.CreateShortcut^(sLinkFile^)
echo oLink.TargetPath = oWS.ExpandEnvironmentStrings^("!Esc_LinkTarget!"^)
echo oLink.Save
)1>!cSctVBS!
cscript //nologo .\!cSctVBS!
DEL !cSctVBS! /f /q
)1>>!LOG! 2>>&1
SET Esc_LinkTarget=%0
คุณจะต้องลบออก"
จากecho oLink.TargetPath = oWS.ExpandEnvironmentStrings^(!Esc_LinkTarget!^)
Wscript.Arguments
เพื่อรับอาร์กิวเมนต์บรรทัดคำสั่ง ... lol
ต่อไปนี้เป็นโซลูชันที่คล้ายกันโดยใช้ PowerShell (ฉันรู้ว่าคุณอาจจะเขียนไฟล์แบตช์ทั้งหมดของคุณใหม่ใน PS แต่ถ้าคุณแค่อยากให้มันเสร็จ™ ... )
set TARGET='D:\Temp'
set SHORTCUT='C:\Temp\test.lnk'
set PWS=powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile
%PWS% -Command "$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(%SHORTCUT%); $S.TargetPath = %TARGET%; $S.Save()"
คุณอาจต้องอธิบายให้ชัดเจนระบุเส้นทางไปยัง PS ในไฟล์ของคุณ แต่มันควรจะได้ผล มีคุณสมบัติเพิ่มเติมบางอย่างที่คุณสามารถคลานผ่านวัตถุนี้ได้เช่นกัน:
Name MemberType Definition
---- ---------- ----------
Load Method void Load (string)
Save Method void Save ()
Arguments Property string Arguments () {get} {set}
Description Property string Description () {get} {set}
FullName Property string FullName () {get}
Hotkey Property string Hotkey () {get} {set}
IconLocation Property string IconLocation () {get} {set}
RelativePath Property string RelativePath () {set}
TargetPath Property string TargetPath () {get} {set}
WindowStyle Property int WindowStyle () {get} {set}
WorkingDirectory Property string WorkingDirectory () {get} {set}
นอกจากทางลัด.exeคุณสามารถใช้เวอร์ชันบรรทัดคำสั่งของ NirCmd เพื่อสร้างทางลัด http://nircmd.nirsoft.net/shortcut.html
วิธีการเกี่ยวกับการใช้คำสั่ง mklink? C: \ Windows \ System32> mklink สร้างลิงค์สัญลักษณ์
MKLINK [[/ D] | [/ H] | [/ J]] ลิงก์เป้าหมาย
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
หลังจากการอภิปรายทั้งหมดที่เรามีที่นี่เป็นวิธีแก้ปัญหาของฉันที่แนะนำ: ดาวน์โหลด: http://optimumx.com/download/Shortcut.zip
แยกมันออกมาบนเดสก์ท็อปของคุณ (ตัวอย่าง) ตอนนี้สมมติว่าคุณต้องการสร้างทางลัดสำหรับไฟล์ที่เรียกว่า scrum.pdf (บนเดสก์ท็อป):
1. เปิด CMD และไปที่โฟลเดอร์เดสก์ท็อป
2. รัน:Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
มันจะสร้างทางลัดที่เรียกว่า sc.lnk บนเดสก์ท็อปของคุณซึ่งจะชี้ไปที่ไฟล์ต้นฉบับ (scrum.pdf)
โปรแกรมฟรีนี้จำเป็นต้องใช้ฟังก์ชั่นhttp://www.nirsoft.net/utils/nircmd2.html : (ตัวอย่างจากหน้าเว็บดังกล่าว)
"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
ตัวอย่างของฉันเองที่จะลอง: ทางลัด nircmd.exe "c: \ windows \ system32 \ calc.exe" "~ $ folder.desktop $" "เครื่องคิดเลข Windows"
ฉันรู้ว่าหัวข้อนี้เก่า แต่ฉันต้องการเสนอวิธีแก้ปัญหาที่ง่ายสำหรับฉัน
ฉันคัดลอกไฟล์. ico ไปยังไดรฟ์ C: ก่อน จากนั้นฉันสร้างทางลัดบนเดสก์ท็อปและตั้งไอคอนเป็นไฟล์ ico บนไดรฟ์ C: ฉันคัดลอกทั้ง .ico และทางลัดไปยังเครือข่ายที่ผู้ใช้ของฉันสามารถเข้าถึงได้ เมื่อนั้นฉันเขียนไฟล์แบตช์ต่อไปนี้เพื่อคัดลอก ico และ. url ไปยังเดสก์ท็อป windows 7 ของผู้ใช้ สิ่งนี้จะสร้างทางลัดบนเดสก์ท็อปของผู้ใช้ทั้งหมดและเก็บไฟล์ไอคอนที่ฉันตั้งไว้เมื่อสร้างทางลัด ฉันหวังว่านี่จะช่วยให้ใครบางคน
@echo off
Copy "\\sharename\folder\icon.ico" "C:\"
pause
copy "\\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause