Làm thế nào tôi có thể theo một phím tắt windows trong vỏ điện?


11

Tôi đang sử dụng powershell và tôi có một lối tắt đến thư mục đích của tôi trong thư mục hiện tại. Tôi muốn thay đổi thư mục hiện tại thành thư mục được trỏ đến bằng phím tắt. Theo logic, điều tôi muốn làm là:

cd your-files-here.lnk

và gió lên trên những điểm đó. Thay vào đó, những gì tôi nhận được là:

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

Tôi đã thử

ii your-files-here.lnk

Nhưng điều này sẽ mở một cửa sổ explorer thay vì thay đổi thư mục hiện tại.

Câu trả lời:


6

Bạn có thể thêm nó vào Microsoft.PowerShell_profile.ps1tập tin của bạn . Các cdlệnh sau đó sẽ làm việc như mong muốn.

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

Tôi đã phải thay đổi "$ fullpath = giải quyết đường dẫn $ đích" thành "$ fullpath = (giải quyết đường dẫn $ đích) .Path" để làm cho nó hoạt động.
Omaer

2
Ngoài ra, tôi nhận thấy rằng PowerShell tự động hoàn thành không hoạt động đối với các thư mục không phải sau khi tôi nhập "cd", điều đó có nghĩa là tôi phải tự nhập toàn bộ tên của tệp .lnk.
Omaer

8

Thật không may, Windows không làm cho nó dễ dàng để làm việc với các phím tắt. Điều này sẽ làm việc:

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

Điều này hoạt động trong đó mục tiêu là một đường dẫn cục bộ thông thường, nhưng trong ít nhất một trường hợp, phím tắt đang chỉ đến một đường dẫn UNC. Trong trường hợp này, TargetPath trống.
Matthew Scouten

Điều đó thật kỳ lạ, tôi có các phím tắt .lnk tới các đường dẫn UNC và thuộc tính .Targetpath có đường dẫn trong đó. Tôi thậm chí đã thử lấy một cái và làm cho đường dẫn trống và nó sẽ không lưu theo cách đó.
EBGreen

Đừng bận tâm. Tôi đã làm một cái gì đó sai. Hoạt động tốt.
Matthew Scouten

Bạn nên cho chúng tôi biết những gì đã sai để thế hệ tương lai có thể có lợi!
uSlackr

1
Nói tóm lại: CreatShortcut muốn có một đường dẫn tuyệt đối.
Matthew Scouten

3

Là các phím tắt là một điều cần thiết?

Bạn có thể sử dụng một liên kết Windows cho việc này. Xem mklink /?để biết thêm thông tin về các liên kết / điểm giao tiếp của Windows.


Tôi không phải là người quyết định các phím tắt.
Matthew Scouten

1
Câu trả lời này rất hữu ích với tôi và giải pháp hoạt động trơn tru, sự kiện nếu về mặt kỹ thuật không giải quyết được vấn đề (phím tắt).
twigmac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.