HOWTO · PowerShell

Ändern des Arbeitsverzeichnisses in PowerShell

Dieser Artikel zeigt, wie Sie Ihr Arbeitsverzeichnis in Windows PowerShell ordnungsgemäß ändern und wie es sich von seiner Legacy-Eingabeaufforderungssyntax unterscheidet.

Auf dieser Seite

Verwenden Sie das PowerShell-Cmdlet Set-Location, um den aktuellen Speicherort zu ändern. Auch die Aliase cd und chdir funktionieren; in Skripten und Beispielen ist der vollständige Cmdlet-Name jedoch verständlicher. Ein Speicherort kann ein Verzeichnis auf dem aktuellen Laufwerk oder ein Pfad auf einem anderen Laufwerk sein. Die folgenden Beispiele verwenden $HOME, das PowerShell als Home-Verzeichnis des aktuellen Benutzers definiert.

Das Arbeitsverzeichnis mit Set-Location ändern

Führen Sie dieses Beispiel aus, um das Home-Verzeichnis als aktuellen Speicherort festzulegen:

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

Set-Location -Path $HOME

Set-Location ändert den aktuellen Speicherort in der PowerShell-Sitzung. -Path gibt das Ziel an; bei einem einfachen Pfad kann der Parameter entfallen, aber durch seine ausdrückliche Angabe wird der Zweck des Befehls klarer. Der Befehl startet weder eine neue Shell noch ändert er den Speicherort anderer laufender Programme. Die bereitgestellte PowerShell-Ausführung wurde erfolgreich abgeschlossen und erzeugte für dieses Beispiel keine Standardausgabe.

Laufwerke und Verzeichnisse wechseln

Mit einem einzigen Set-Location-Befehl kann PowerShell zu einem Verzeichnis auf einem anderen Laufwerk wechseln. Beispielsweise wählt Set-Location -Path 'D:\Work' diesen Pfad aus, sofern das Laufwerk D: und das Verzeichnis in der aktuellen PowerShell-Umgebung verfügbar sind. Ein Laufwerk kann ein Dateisystemlaufwerk wie C: oder ein anderes von einem PowerShell-Anbieter bereitgestelltes Laufwerk sein. Das Ziel muss vorhanden und zugänglich sein.

Die Eingabeaufforderung behandelt den Laufwerkswechsel anders. Wird bei aktivem Laufwerk C: cd D:\Work ausgeführt, ändert das das gespeicherte Verzeichnis für D:, aktiviert D: aber nicht. Wechseln Sie in der Eingabeaufforderung mit D: zum Laufwerk und ändern Sie anschließend dessen Verzeichnis mit cd \Work. Dieser Unterschied gilt für die Eingabeaufforderung; in PowerShell wechseln Sie mit Set-Location und dem Zielpfad in einem Schritt sowohl das Laufwerk als auch das Verzeichnis. Die Formen für die Eingabeaufforderung werden hier direkt im Text beschrieben, da sich die ausführbaren Beispiele dieses Artikels auf PowerShell beziehen.

Pfade mit Leerzeichen verwenden

Setzen Sie einen Pfad in Anführungszeichen, wenn ein Verzeichnisname Leerzeichen enthält. So behandelt PowerShell den Pfad als ein einziges Argument. Für einen wörtlich angegebenen Pfad eignen sich sowohl einfache als auch doppelte Anführungszeichen. Verwenden Sie zum Beispiel Set-Location -Path 'C:\Program Files' oder Set-Location -Path "C:\Program Files". Einfache Anführungszeichen sind praktisch, wenn der Pfad wörtlich behandelt werden soll; in doppelten Anführungszeichen kann PowerShell außerdem Variablen innerhalb der Zeichenfolge ersetzen. Eine deutsche Anleitung zu Pfaden mit Leerzeichen ist derzeit nicht verfügbar. Ersetzen Sie den Beispielpfad durch ein Verzeichnis, das auf Ihrem System vorhanden ist.

Den neuen Speicherort mit -PassThru erfassen

Normalerweise ändert Set-Location den Speicherort der Sitzung, ohne ein Speicherortobjekt zurückzugeben. Fügen Sie -PassThru hinzu, wenn der nächste Befehl dieses Objekt benötigt, etwa um dessen Eigenschaft Path auszulesen oder es in einer Variablen zu speichern. So lässt sich ein separater Aufruf von Get-Location vermeiden, wenn das Objekt direkt weiterverwendet werden soll.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

$newLocation = Set-Location -Path $HOME -PassThru
$newLocation.Path
/root

Die zweite Zeile liest den Pfad aus dem zurückgegebenen Speicherortobjekt aus. Bei der bereitgestellten PowerShell-Ausführung gab dieses Beispiel den folgenden Pfad aus. Da $HOME vom aktuellen Benutzer und System abhängt, kann Ihr Pfad abweichen. -PassThru ist optional: Verwenden Sie Get-Location, wenn Sie den aktuellen Speicherort unabhängig davon prüfen möchten, und fügen Sie -PassThru nur hinzu, wenn nachfolgende Befehle das zurückgegebene Objekt benötigen.

Aliase für Set-Location verwenden

PowerShell definiert cd und chdir als Aliase für Set-Location; sl ist ein weiterer Alias. Bei der interaktiven Arbeit können die Kurzformen praktisch sein. Beim Lesen eines Skripts ist der vollständige Cmdlet-Name für andere meist leichter zu erkennen. Betrachten Sie sl daher als optionale Kurzform und nicht als eigenständigen Befehl mit anderem Verhalten. Alle diese Schreibweisen ändern den aktuellen PowerShell-Speicherort und akzeptieren dieselben Zielpfade, auch Pfade mit Leerzeichen in Anführungszeichen.