मैं इस निष्पादन योग्य के लिए PowerShell के साथ एक शॉर्टकट बनाना चाहता हूं:
C:\Program Files (x86)\ColorPix\ColorPix.exe
यह कैसे किया जा सकता है?
मैं इस निष्पादन योग्य के लिए PowerShell के साथ एक शॉर्टकट बनाना चाहता हूं:
C:\Program Files (x86)\ColorPix\ColorPix.exe
यह कैसे किया जा सकता है?
जवाबों:
मैं किसी भी देशी 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 में set-shortcut.ps1 के रूप में एक पॉवरशेल स्क्रिप्ट सेव बना सकते हैं
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"
$ शॉर्टकट से पहले । ()।
सुविधा के लिए, यहां सेट-शॉर्टकट.पीएस 1 का संशोधित संस्करण है। यह तर्कों को इसके दूसरे पैरामीटर के रूप में स्वीकार करता है।
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()
Set-ShortCut
cmdlet का सिंटैक्स अधिक पसंद होगा MKLINK
, या Set-Alias
जहां पहले तर्क और फिर लक्ष्य के रूप में उपनाम या लिंक आता है। param ( [string]$LinkPath, [string]$TargetPath )
cmd /c mklink
वर्कअराउंड में से एक सीमा .lnk फ़ाइल के नामकरण के लिए एक बहुत ही सीमित वर्ण सेट है। उदाहरण के लिए → युक्त एक नाम विफल हो जाएगा। इसके चारों ओर एक तरह से, यदि आपको बेहतर चरित्र समर्थन की आवश्यकता है , तो .lnk फ़ाइल बनाते समय फ़ाइल नाम को [Web.HttpUtility]::UrlEncode()
(बाद में Add-Type -AN System.Web
) है, तो नाम बदलने के लिए इसका नाम बदलकर UrlDecoded नाम रखें।
SpecialFolders
एक WScript ऑब्जेक्ट की विधि काम आ सकती है: $WshShell.SpecialFolders("Desktop")
आपको सही रास्ता देगा डेस्कटॉप फ़ोल्डर, जिसे आप कॉल करते समय बाद में उपयोग कर सकते हैं CreateShortcut
।
PS C:\Users\${myUser} $Shortcut = $WshShell.CreateShortcut("$C:\Users\${myUser}\home.lnk")
। इसने एक शॉर्टकट बनाया, जिसे विंडोज़ एक्सप्लोरर से देखा जा सकता है, लेकिन जब मैंने cd home
PS में टाइप किया तो मुझे एक त्रुटि मिलीcd : Cannot find path 'C:\Users\carpb\home' because it does not exist.
PowerShell 5.0 की शुरुआत New-Item
, Remove-Item
है, और Get-ChildItem
बनाने और सांकेतिक लिंक के प्रबंधन का समर्थन करने के बढ़ाया गया है। Itemtype के लिए पैरामीटर New-Item
, एक नया मान स्वीकार करता है SymbolicLink। अब आप न्यू-आइटम cmdlet चलाकर एक पंक्ति में प्रतीकात्मक लिंक बना सकते हैं।
New-Item -ItemType SymbolicLink -Path "C:\temp" -Name "calc.lnk" -Value "c:\windows\system32\calc.exe"
केयरफुल हो एक सिंबोलिकलिंक एक शॉर्टकट से अलग है , शॉर्टकट सिर्फ एक फाइल है। उनके पास एक आकार (एक छोटा सा, यह सिर्फ संदर्भ है जहां वे इंगित करते हैं) और उनका उपयोग करने के लिए उस फ़िलाटाइप का समर्थन करने के लिए एक आवेदन की आवश्यकता होती है। एक प्रतीकात्मक लिंक फाइल सिस्टम स्तर है, और सब कुछ इसे मूल फ़ाइल के रूप में देखता है। प्रतीकात्मक लिंक का उपयोग करने के लिए एक एप्लिकेशन को किसी विशेष समर्थन की आवश्यकता नहीं होती है।
वैसे भी अगर आप पॉवरशेल का उपयोग करके रन अस एडमिनिस्ट्रेटर शॉर्टकट बनाना चाहते हैं तो आप उपयोग कर सकते हैं
$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 फ़ाइल में कुछ और बदलना चाहता है तो आप आधिकारिक Microsoft दस्तावेज़ीकरण का उल्लेख कर सकते हैं ।
New-Item
गया सिम्बलिन बनाया जाता है "${env:AppData}\Microsoft\Windows\SendTo"
, जैसे, और आइकन या वर्किंग डायरेक्टरी जैसी शॉर्टकट प्रॉपर्टीज़ को कस्टमाइज़ करने की अनुमति नहीं देता है।
New-Item -ItemType SymbolicLink -RunAsAdmin ...
:।
& C:\temp\calc.lnk
)। आप क्या उम्मीद करते हैं ?