60

का उपयोग कर मैं इस निष्पादन के लिए Powershell के साथ एक शॉर्टकट बनाना चाहते हैं बनाने के लिए:कैसे एक शॉर्टकट Powershell

C:\Program Files (x86)\ColorPix\ColorPix.exe 

यह कैसे किया जा सकता है?

+1

शुरुआती पावरशेल 5.0 नई वस्तु, निकालें-आइटम, और गेट-चाइल्डइटम को प्रतीकात्मक लिंक बनाने और प्रबंधित करने के लिए बढ़ाया गया है [इस उत्तर को देखें] (http://stackoverflow.com/a/29002672/608772) – JPBlanc

+1

यदि आप प्रशासक के रूप में एक शॉर्टकट चलाने के लिए चाहते हैं आप [इस उत्तर] का उपयोग कर सकते हैं (http://stackoverflow.com/a/29002207/608772)। – JPBlanc

उत्तर

86

मैं powershell में किसी भी देशी cmdlet पता नहीं है, लेकिन आप कॉम वस्तु के बजाय का उपयोग कर सकते हैं:

$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk") 
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe" 
$Shortcut.Save() 

आप को बचाने के लिए अपने $ pwd में सेट shortcut.ps1 के रूप में एक powershell स्क्रिप्ट बना सकते हैं

param ([string]$SourceExe, [string]$DestinationPath) 

$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut($DestinationPath) 
$Shortcut.TargetPath = $SourceExe 
$Shortcut.Save() 

और यह इस

Set-ShortCut "C:\Program Files (x86)\ColorPix\ColorPix.exe" "$Home\Desktop\ColorPix.lnk"

की तरह फोन

'Set the additional parameters for the shortcut 
$Shortcut.Arguments = "/argument=value" 

$ Shortcut.Save से पहले(): आप लक्ष्य exe करने के लिए तर्क पारित करने के लिए चाहते हैं, यह द्वारा किया जा सकता।

सुविधा के लिए, यहां set-shortcut.ps1 का एक संशोधित संस्करण है। यह अपने दूसरे पैरामीटर के रूप में तर्क स्वीकार करता है।

param ([string]$SourceExe, [string]$ArgumentsToSourceExe, [string]$DestinationPath) 
$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut($DestinationPath) 
$Shortcut.TargetPath = $SourceExe 
$Shortcut.Arguments = $ArgumentsToSourceExe 
$Shortcut.Save() 
+0

धन्यवाद, यह काम करता है :) – cethint

+1

मदद करने में खुशी है, इसे उत्तर के रूप में स्वीकार करें! धन्यवाद 1 –

+1

बहुत मामूली, लेकिन केवल स्थिरता के लिए मेरे पास 'सेट-शॉर्टकट' cmdlet का वाक्यविन्यास 'MKLINK', या' सेट-एलियास 'जैसा होना चाहिए जहां उपनाम या लिंक पहले तर्क के रूप में आता है और फिर लक्ष्य। 'param ([string] $ LinkPath, [string] $ targetPath)' – orad

19

शुरुआत PowerShell 5.0 New-Item, Remove-Item, और Get-ChildItem बनाने और सांकेतिक लिंक के प्रबंधन का समर्थन करने के बढ़ाया गया है। आइटम टाइप पैरामीटर New-Item के लिए पैरामीटर एक नया मान, सिंबलिक लिंक स्वीकार करता है। अब आप न्यू-आइटम cmdlet चलाकर एक ही पंक्ति में प्रतीकात्मक लिंक बना सकते हैं।

New-Item -ItemType SymbolicLink -Path "C:\temp" -Name "calc.lnk" -Value "c:\windows\system32\calc.exe" 

Carefull एक SymbolicLink एक शॉर्टकट से अलग है रहो, शॉर्टकट सिर्फ एक फ़ाइल है। उनके पास एक आकार है (एक छोटा सा, वह संदर्भ जहां वे इंगित करते हैं) और उन्हें उपयोग करने के लिए उस फ़ाइल प्रकार का समर्थन करने के लिए एक एप्लिकेशन की आवश्यकता होती है। एक प्रतीकात्मक लिंक फाइल सिस्टम स्तर है, और सबकुछ इसे मूल फ़ाइल के रूप में देखता है। प्रतीकात्मक लिंक का उपयोग करने के लिए किसी एप्लिकेशन को कोई विशेष समर्थन की आवश्यकता नहीं होती है।

वैसे भी आप एक भागो के रूप में प्रशासक बनाना चाहते हैं PowerShell का उपयोग शॉर्टकट आप

$file="c:\temp\calc.lnk" 
$bytes = [System.IO.File]::ReadAllBytes($file) 
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON (Use –bor to set RunAsAdministrator option and –bxor to unset) 
[System.IO.File]::WriteAllBytes($file, $bytes) 

का उपयोग किसी को भी एक .lnk फ़ाइल आप official Microsoft documentation का उल्लेख कर सकते में कुछ और ही बदलना चाहते हैं कर सकते हैं।

+3

क्या शॉर्टकट के लिए आइकन भी सेट करना संभव है? – orad

+1

हालांकि, एक शॉर्टकट से एक सिम्लिंक बहुत अलग है। '$ {Env: AppData} \ Microsoft \ Windows \ SendTo में' नया आइटम 'का उपयोग करके बनाया गया एक सिम्लिंक "एक्सप्लोरर भेजें मेनू में नहीं दिखाया जाएगा, उदाहरण के लिए, और आइकन या शॉर्टकट गुणों को अनुकूलित करने की अनुमति नहीं देता है या कार्यकारी डाइरेक्टरी। – brianary

+0

@ब्रियानरी पूरी तरह से सही है, मैंने यहां भ्रम पैदा किया! मैं अपना जवाब संपादित करता हूं ताकि कोई भी डाउनवोट कर सके। – JPBlanc