Wie kann ich in PowerShell einen Symlink aufrufen?

1

Ich habe einen symbolischen Link wie folgt erstellt:

PS C:\dev\bin> cmd /c mklink "wd" c:\dev\code
symbolic link created for wd <<===>> c:\dev\code

OK, einfach. Also versuche ich es zu cd:

PS C:\dev\bin> cd wd
Set-Location : Cannot find path 'wd' because it does not exist.

PS C:\dev\bin> cd .\wd
Set-Location : Cannot find path '.\wd' because it does not exist.

PS C:\dev\bin> cd \wd
Set-Location : Cannot find path 'C:\wd' because it does not exist.

Unter Linux ist das so viel einfacher. Wie kann ich tatsächlich zu einem Symlink in PowerShell wechseln?

(Es scheint eine einfache Frage zu sein, aber die ersten drei Seiten der Google-Ergebnisse hatten keine Antwort.)

jcollum
quelle

Antworten:

4

Der richtige Befehl zum Verknüpfen eines Verzeichnisses lautet

cmd /c mklink /D link target

Check out 'mklink /?' für andere Optionen.

Ariel
quelle
1
Das hat es geschafft. Was um alles in der Welt habe ich geschaffen, als ich es ohne das / D getan habe? Man könnte meinen, das wäre fehlgeschlagen, da c: \ dev \ code keine Datei ist.
jcollum
Das cmd /c Teil ist überflüssig.
Bill_Stewart
3

Ich empfehle die PowerShell Community-Erweiterungen . Es fügt die Befehle hinzu New-Symlink, New-Junction, New-Hardlink, und Get-ReparsePoint. Es gibt auch ein paar Aliase für Dinge wie ln Sie können also einfach die Linux-Syntax verwenden.

Scott Chamberlain
quelle
Huh? cmd / c mklink ist der Befehl, um den Symlink zu erstellen. Oder haben Sie vermisst, dass dies in Powershell ist?
jcollum
cmd /c sollte das Arbeitsverzeichnis nicht ändern, es sei denn, Sie werden ausdrücklich dazu aufgefordert. Es ist hier erforderlich, weil mklink ist ein cmd eingebaut.
grawity
Sorry, das habe ich vermisst, ich habe meine Antwort überarbeitet. Das ist was ich benutze.
Scott Chamberlain
2
Nur um zu verdeutlichen, 'cmd' ist nicht Teil von Powershell, das ist die Reg-Windows-Shell, obwohl wir hoffentlich später eine robustere Symlink-Fähigkeit in Powershell haben, oder irgendeine andere Fähigkeit, b / c im Moment gibt es keine!
MDMoore313