2017-09-18 6 views
1

cd dirを使用してdirに移動します。powershellのショートカットに従う方法

しかしdirがディレクトリへのショートカットであれば、cd dircd dir.lnkの両方がディレクトリが存在しないことを言って、エラーを与えます。

どうすればそのショートカットに従うことができますか?シェルCOMオブジェクトを使用して

(Linuxのcd dirでちょうどに動作します。Windowsでは、私は考えを持っていないしました)

+0

Windowsショートカットが実際にある明示的な解析または[COMへのアクセスを]必要[バイナリファイル](https://msdn.microsoft.com/en-us/library/dd871305.aspx)(HTTPS:/ /stackoverflow.com/q/9414152)。 NTFSはシンボリックリンクもサポートしています(LinuxのExt fsのように)。しかし、あまり使われていません。 – vonPryz

答えて

3

、あなたはターゲットパスを取得し、そこから、あなたが望むものを行うことができます。 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 = 'Filename.lnk' 
$TargetPath = Get-shortcutTargetPath($file) 
Set-Location $TargetPath 
関連する問題