CMD से शॉर्टकट कैसे बनाये?


76

मैं .lnkकमांड लाइन उपयोगिताओं का उपयोग करके किसी अन्य फ़ाइल या निष्पादन योग्य के लिए एक शॉर्टकट फ़ाइल ( ) कैसे बना सकता हूं ?


1
वहाँ ऐसा करने के लिए कोई सीधा रास्ता प्रतीत नहीं होता है। कुछ लोगों ने उपकरण लिखे हैं जो आपको इसे करने देते हैं; उनमें से एक है । "विंडोज़ विंडोज़ के लिए शॉर्टकट कमांड लाइन बनाते हैं" कुछ अन्य लोगों को खोजता है। (मैंने उनमें से कोई भी कोशिश नहीं की है।)
कीथ थॉम्पसन

@iglvzx - मुझे यकीन नहीं है कि आपके द्वारा किया गया संपादन सही है। मुझे नहीं लगता कि शांतनु को एक बैच स्क्रिप्ट की आवश्यकता है - यह एक * .lnk से दूसरे * .exe फ़ाइल बनाने का कोई भी तरीका हो सकता है।
अल्फासिन

@alfasin मैंने जोड़ा (.ink file), क्योंकि कुछ भ्रम था। मैंने शांतनु की टिप्पणी को प्रतिबिंबित करने के लिए प्रश्न को संशोधित किया। जब आप 'शॉर्टकट' बनाने का एक तरीका प्रदान करते हैं, तो यह इस विशिष्ट प्रश्न का उत्तर नहीं देता है।
iglvzx

1
निम्नलिखित का उपयोग करें: शक्तियां "$ s = (New-Object -COM WScript.Shell) .CreateShortcut ('% userprofile% \ Desktop \ शॉर्टकट \lnk'); $ s.TargetPath = 'C: \ Windows \'; $ s .Save () "जाहिर है, अपने शॉर्टकट पथ और लक्ष्य पथ के साथ क्रमशः"% userprofile% \ Desktop \ शॉर्टकट.lnk "और" C: \ Windows \ "बदलें।
काऊलीनटर

@cowlinator टाइप किया गया, आपका सुझाव काम नहीं करता है।
प्लोनी

जवाबों:


53

इस साइट पर कुछ बहुत उपयोगी जानकारी है: 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

1
संबंधित: MSDN, शैल लिंक्स
iglvzx

यह एक फ़ाइल के लिए शॉर्टकट के लिए बहुत अच्छा काम करता है। हालाँकि, मुझे एक फ़ोल्डर में शॉर्टकट के लिए इसका उपयोग करने में एक अजीब समस्या हो रही है, जब मेरे चर Esc_LinkTarget में एक पर्यावरण चर है जो अपने मूल फ़ोल्डर को प्राप्त करने की कोशिश कर रहा है। (% CD% की तरह कुछ काम नहीं करता है .. लेकिन% CD% काम करता है)। शॉर्टकट लक्ष्य प्रकार 'फ़ोल्डर' के बजाय 'फाइल' बन जाता है
EDM

1
@ एडमंड दिलचस्प समस्या। मेरे पास इस पर गौर करने का समय नहीं है, लेकिन मुझे लगता है कि एक पीछे चल रहा स्लैश अंतर बना सकता है।
डेर Hochstapler

नोट: यदि आप का उपयोग करें SET Esc_LinkTarget=%0तो आप को दूर करने के लिए है "सेecho oLink.TargetPath = oWS.ExpandEnvironmentStrings^(!Esc_LinkTarget!^)
काले

इसके बजाय प्रत्येक निष्पादन के लिए एक vbscript बनाने के Wscript.Argumentsलिए कमांड लाइन तर्क प्राप्त करने के लिए उपयोग करना बेहतर होता ... lol
संकर्ण

22

यहां पॉवरशेल का उपयोग करके एक समान समाधान दिया गया है (मुझे पता है, आप शायद अपनी पूरी बैच फ़ाइल पुनश्च में लिख सकते हैं, लेकिन यदि आप इसे प्राप्त करना चाहते हैं ...)

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} 

ट्रिक्स : यदि आप मानते हैं कि आपके पास ऐसा करने का एक बेहतर तरीका है , तो बस इसे एक नए उत्तर के रूप में पोस्ट करें (यदि यह उचित है, तो इसे लिंक करना)।
स्कॉट

17

शॉर्टकट। Exe के अलावा, आप शॉर्टकट बनाने के लिए NirCmd के कमांड लाइन संस्करण का भी उपयोग कर सकते हैं। http://nircmd.nirsoft.net/shortcut.html


11
मैं NirSoft से लगभग सब कुछ पुनः प्राप्त करता हूं , यह अंतिम गीक टूलसेट है
जो कि

10

कैसे 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.

10
अच्छा विचार है, लेकिन सिम्फ़लिंक शॉर्टकट की तुलना में थोड़ा अलग व्यवहार करते हैं। यदि मैं एक विजुअल स्टूडियो समाधान का शॉर्टकट बनाता हूं, तो यह सभी अपेक्षाकृत पथ-प्रोजेक्ट को सही तरीके से खोलता है। हालाँकि, अगर मैं सिमिलिंक के माध्यम से एक ही समाधान खोलता हूं, तो वर्किंग डायरेक्टरी उस पथ की है, जिसमें सिमलिंक रहता है, न कि वह जिस पथ को संदर्भित करता है।
वाल्टर स्टबोस

7

हमारे द्वारा यहां की गई सभी चर्चाओं के बाद, यह मेरा सुझाया समाधान है: डाउनलोड करें: 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) को इंगित करेगा


यह कोई शॉर्टकट नहीं है; यह केवल एक बैच फ़ाइल है जो एक निर्दिष्ट कार्यक्रम को आमंत्रित करती है।
कीथ थॉम्पसन

1
एक शॉर्टकट कुछ है जो आप खिड़कियों से चलाते हैं, क्योंकि वह शीर्षक में सीएमडी का उपयोग करता है और टैग "कमांड-लाइन" डालता है मैंने माना कि वह इसे सीएमडी से चलाना चाहता है। एक बैच फ़ाइल एक विंडोज़ "शॉर्टकट" के बराबर होती है जब आप सीएमडी (डॉस जैसे) एनवी में चलाते हैं।
अल्फासिन

2
चूँकि उन्होंने प्रश्न के शरीर में "शॉर्टकट (.lnk फ़ाइल)" डाला, मैंने माना कि वह एक वास्तविक शॉर्टकट बनाना चाहते हैं।
कीथ थॉम्पसन

1
स्पष्टता के लिए खेद है कि मैं अपने डेस्कटॉप पर एक आइकन रखना चाहता था जिसे मैंने cmd में बनाया है जो एक exe फ़ाइल का शॉर्टकट होगा
शांतनु

अब जब मैं अंततः समझ गया (धीमे विचारक - आप क्या कर सकते हैं ...) मैंने अपना उत्तर बदल दिया। आशा है ये मदद करेगा!
अल्फासिन

0

इस निशुल्क कार्यक्रम में कार्यक्षमता की आवश्यकता है 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 कैलक्यूलेटर"


0

मुझे पता है कि यह विषय पुराना है, लेकिन मैं उस सरल समाधान को प्रदान करना चाहता था जो मेरे लिए काम करता है।

मैंने पहली बार .ico फ़ाइल को अपने C: ड्राइव में कॉपी किया। फिर मैंने अपने डेस्कटॉप पर शॉर्टकट बनाया और आइकन को अपने C: ड्राइव पर ico फ़ाइल में सेट किया। मैंने तब एक नेटवर्क साझा करने के लिए .ico और शॉर्टकट दोनों को कॉपी किया था जिसका मेरे उपयोगकर्ताओं तक पहुंच है। एक बार जब मैंने ico और .url को यूजर्स विंडोज 7 डेस्कटॉप पर कॉपी करने के लिए निम्न बैच फाइल लिखी। यह सभी उपयोगकर्ताओं के डेस्कटॉप पर शॉर्टकट बनाता है और शॉर्टकट बनाते समय आइकन फ़ाइल को सेट करता है। मुझे उम्मीद है इससे किसी को सहायता मिलेगी।

@echo off
Copy "\\sharename\folder\icon.ico" "C:\"
pause
copy "\\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause

यदि यह लेने के लिए दृष्टिकोण है, तो वास्तविक शॉर्टकट (.lnk) बनाना बेहतर है जो इसमें आइकन एम्बेड करता है। उस शॉर्टकट को तब हर जगह कॉपी किया जा सकता है।
LPChip
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.