如何在 Power Shell 中遵循 Windows 快捷方式?

如何在 Power Shell 中遵循 Windows 快捷方式?

我正在使用 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

但这会打开一个资源管理器窗口而不是改变当前目录。

答案1

您可以将其添加到您的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

不幸的是,Windows 无法轻松使用快捷方式。这应该可行:

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

答案3

捷径是必要的吗?

您可以使用 Windows 链接来实现这一点。mklink /?有关 Windows 链接/连接点的更多信息,请参阅。

答案4

这实际上并不是对您的问题的回答,但是您可以向 powershell 中添加一个模块来帮助更快地导航 - 称为“z”。

以下是更多信息: https://www.hanselman.com/blog/SpendLessTimeCDingAroundDirectoriesWithThePowerShellZShortcut.aspx

相关内容