ฉันจะติดตามทางลัดของ windows ใน power shell ได้อย่างไร


11

ฉันใช้ powershell และฉันมีทางลัดไปยังไดเรกทอรีปลายทางของฉันในไดเรกทอรีปัจจุบัน ฉันต้องการเปลี่ยนไดเรกทอรีปัจจุบันเป็นไดเรกทอรีที่ชี้ไปทางลัด เหตุผลที่ฉันต้องทำคือ:

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

แต่จะเปิดหน้าต่าง explorer แทนการเปลี่ยนไดเรกทอรีปัจจุบัน

คำตอบ:


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
    }
}

ฉันต้องเปลี่ยน "$ fullpath = resol-path $ target" เป็น "$ fullpath = (path-path $ target) .Path" เพื่อให้มันทำงานได้
Omaer

2
นอกจากนี้ฉันสังเกตเห็นว่าการเติมอัตโนมัติของ PowerShell ไม่ทำงานสำหรับไดเรกทอรีที่ไม่ใช่หลังจากฉันพิมพ์ "cd" ซึ่งหมายความว่าฉันต้องพิมพ์ชื่อเต็มของไฟล์. lnk ด้วยตนเอง
Omaer

8

น่าเสียดายที่ Windows ไม่สามารถทำงานกับทางลัดได้อย่างง่ายดาย สิ่งนี้น่าจะใช้ได้:

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

สิ่งนี้ทำงานได้ที่เป้าหมายคือเส้นทางในพื้นที่ทั่วไป แต่อย่างน้อยหนึ่งกรณีทางลัดจะชี้ไปที่เส้นทาง UNC ในกรณีนี้ TargetPath ว่างเปล่า
Matthew Scouten

เป็นเรื่องแปลกฉันมีทางลัด. lnk ไปยังเส้นทาง UNC และคุณสมบัติ. Targetpath มีเส้นทางอยู่ในนั้น ฉันยังลองเอามันมาใช้แล้วทำให้พา ธ เป้าหมายว่างเปล่าและมันก็ไม่ได้ช่วยอะไรแบบนั้น
EBGreen

ไม่เป็นไร. ฉันทำผิดอย่างอื่น ทำงานได้ดี
Matthew Scouten

คุณควรบอกเราว่ามีอะไรผิดปกติเพื่อให้คนรุ่นต่อไปได้รับประโยชน์!
uSlackr

1
ในระยะสั้น: CreateShortcut ต้องการเส้นทางที่แน่นอน
Matthew Scouten

3

ทางลัดเป็นสิ่งจำเป็นหรือไม่?

คุณสามารถใช้ลิงค์ Windows สำหรับสิ่งนี้ ดูmklink /?ข้อมูลเพิ่มเติมเกี่ยวกับลิงค์ Windows / จุดแยก


ฉันไม่ใช่คนที่ตัดสินใจเกี่ยวกับทางลัด
Matthew Scouten

1
คำตอบนี้เป็นประโยชน์อย่างมากกับฉันและวิธีแก้ปัญหาทำงานได้อย่างราบรื่นหากว่าในทางเทคนิคไม่สามารถแก้ปัญหา (ทางลัด) ได้
twigmac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.