How to follow a shortcut in powershell

[亡魂溺海] 提交于 2019-12-22 18:12:40

问题


In powershell, you use cd dir to go into the directory dir.

But if dir is a shortcut to a directory, cd dir and cd dir.lnk both give an error, saying that the directory doesn't exist.

So how do I follow that shortcut?

(In Linux cd dir just works. In Windows, I've got no idea)


回答1:


Using the shell com-object, you can get the target path and from there, do what you wish. Get-ShortcutTargetPath

function Get-ShortcutTargetPath($fileName) {
    $sh = New-Object -COM WScript.Shell
    $targetPath = $sh.CreateShortcut($fileName).TargetPath 
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sh) | Out-Null
    return $targetPath
}


$file = 'Path\to\Filename.lnk'
$TargetPath = Get-shortcutTargetPath($file)

if (Test-Path -PathType Leaf $TargetPath) {
    $TargetPath = Split-Path -Path $TargetPath
}

Set-Location $TargetPath



回答2:


In Windows 10 cd directory_name or cd dir* if you only want part of the name assuming no other directories start with the same dir*.



来源:https://stackoverflow.com/questions/46276418/how-to-follow-a-shortcut-in-powershell

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!