मैं पावर शेल में विंडोज़ शॉर्टकट का पालन कैसे कर सकता हूं?


11

मैं पॉवरशेल का उपयोग कर रहा हूं और वर्तमान निर्देशिका में मेरी गंतव्य निर्देशिका का शॉर्टकट है। मैं वर्तमान निर्देशिका को शॉर्टकट द्वारा इंगित करने के लिए बदलना चाहता हूं। तार्किक रूप से मैं जो करना चाहता हूं वह है:

cd your-files-here.lnk

और उस बिंदु पर जहां हवा हो। इसके बजाय मुझे क्या मिलेगा:

Set-Location : Cannot find path 'your-files-here.lnk' because it does not exist.
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\pscx\Modules\CD\Pscx.CD.psm1:111 char:17
+                 Set-Location <<<<  $path -UseTransaction:$UseTransaction
    + CategoryInfo          : ObjectNotFound: (your-files-here.lnk:String) [Set-Location], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

मैंने कोशिश की

ii your-files-here.lnk

लेकिन यह वर्तमान निर्देशिका को बदलने के बजाय एक एक्सप्लोरर विंडो खोलता है।

जवाबों:


6

आप इसे अपनी Microsoft.PowerShell_profile.ps1फ़ाइल में जोड़ सकते हैं । cdआदेश तो के रूप में वांछित काम करेंगे।

remove-item alias:cd -force
function cd($target)
{
    if($target.EndsWith(".lnk"))
    {
        $sh = new-object -com wscript.shell
        $fullpath = resolve-path $target
        $targetpath = $sh.CreateShortcut($fullpath).TargetPath
        set-location $targetpath
    }
    else {
        set-location $target
    }
}

मुझे "$ पूर्णपथ = संकल्प-पथ $ लक्ष्य" को "$ पूर्णपथ = (संकल्प-पथ $ लक्ष्य) .पाथ" को काम पर लाने के लिए बदलना पड़ा।
ओमार

2
इसके अलावा, मैंने देखा है कि PowerShell auto-complete गैर-निर्देशिकाओं के लिए काम नहीं करता है क्योंकि मैं "cd" टाइप करता हूं, जिसका मतलब है कि मुझे .lnk फ़ाइल का पूरा नाम स्वयं लिखना होगा।
ओमर

8

दुर्भाग्य से, विंडोज शॉर्टकट के साथ काम करना आसान नहीं बनाता है। यह काम करना चाहिए:

$sh = New-Object -COM WScript.Shell
cd $sh.CreateShortcut('your-files-here.lnk').TargetPath

यह काम करता है जहां लक्ष्य एक पारंपरिक स्थानीय पथ है, लेकिन कम से कम एक मामले में, शॉर्टकट एक UNC पथ की ओर इशारा करता है। इस स्थिति में, TargetPath खाली है।
मैथ्यू स्काउटन

यह अजीब है, मेरे पास UNC रास्तों के लिए .lnk शॉर्टकट हैं और .Targetpath प्रॉपर्टी में यह पथ है। मैंने भी एक लेने की कोशिश की और लक्ष्यपथ को खाली कर दिया और यह इस तरह से नहीं बचा।
ईबीग्रीन

कोई बात नहीं। मैं कुछ और गलत कर रहा था। ठीक काम करता है।
मैथ्यू स्काउटन

आपको हमें बताना चाहिए कि क्या गलत था ताकि आने वाली पीढ़ियों को फायदा हो सके!
uSlackr

1
संक्षेप में: CreateShortcut एक पूर्ण मार्ग चाहता है।
मैथ्यू स्काउटन

3

क्या शॉर्टकट एक आवश्यकता है?

आप इसके लिए विंडोज लिंक का उपयोग कर सकते हैं। mklink /?Windows लिंक / जंक्शन बिंदुओं पर अधिक जानकारी के लिए देखें ।


मैं वह नहीं हूं, जिसने शॉर्टकट के बारे में फैसला किया है।
मैथ्यू स्काउटन

1
यह उत्तर मेरे लिए काफी मददगार था और समाधान सुचारू रूप से काम करता है, अगर यह तकनीकी रूप से समस्या (शॉर्टकट) को हल नहीं करता है।
ट्विगमैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.