2017-09-18 6 views
1

Dans Powerhell, vous utilisez cd dir pour aller dans le répertoire dir.Comment suivre un raccourci dans powershell

Mais si dir est un raccourci vers un répertoire, cd dir et cd dir.lnk donnent une erreur, indiquant que le répertoire n'existe pas.

Alors, comment puis-je suivre ce raccourci?

(Sous Linux cd dirfonctionne très. Dans Windows, j'ai aucune idée)

+0

raccourci Windows est en fait [un fichier binaire] (https://msdn.microsoft.com/en-us/library/dd871305.aspx) qui a besoin d'analyse syntaxique explicite ou [accès COM] (https://stackoverflow.com/q/9414152). NTFS prend également en charge les liens symboliques (comme les extensions dans Linux), mais ceux-ci sont rarement utilisés. – vonPryz

Répondre

3

Utilisation de la com-objet shell, vous pouvez obtenir le chemin cible et à partir de là, faire ce que vous voulez. 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