Ändern des Arbeitsverzeichnisses in PowerShell
Viele standardmäßige Eingabeaufforderungsbefehle (CMD) funktionieren in der Windows PowerShell-Umgebung. Die PowerShell-Umgebung überträgt diese Befehle von den grundlegendsten Befehlen wie ping
zu den am häufigsten verwendeten Befehlen wie ipconfig
aus der Legacy-Umgebung unter Verwendung von Aliasen.
Ein Beispiel für einen CMD-Befehl, der immer noch mit Windows PowerShell funktioniert, ist der Befehl zum Ändern des Verzeichnisses oder cd
und chdir
.
Obwohl wir die Legacy-Befehle cd
und chdir
in Windows PowerShell verwenden können, ist es besser, in bestimmten Situationen das PowerShell-Cmdlet Set-Location
zu verwenden, um den Code richtig und sauberer zu erstellen.
Verwenden des Cmdlet Set-Location
zum Ändern des Arbeitsverzeichnisses in PowerShell
Das Cmdlet Set-Location
setzt das Arbeitsverzeichnis auf ähnliche Weise auf einen bestimmten Ort, wie sein älteres Gegenstück cd
und chdir
. Der geringfügige Unterschied dieses Cmdlets zu den älteren Befehlen besteht darin, dass das Cmdlet Set-Location praktischerweise sowohl das Arbeitslaufwerk als auch das Verzeichnis gleichzeitig ändert, was CMD.EXE nicht kann.
Wenn wir unser Arbeitsverzeichnis in der Eingabeaufforderung auf ein anderes Laufwerk ändern müssen, müssen wir trotzdem zuerst den <Laufwerksbuchstaben>:
eingeben und dann unsere Befehle cd
und chdir
auslösen, um den Pfad des Arbeitsverzeichnisses zu ändern.
Eingabeaufforderung:
C:\> cd C:\Temp
C:\Temp> cd D:\Docs
C:\Temp>
#To change the working drive, type the drive letter
C:\Temp> D:
D:\>
Power Shell:
PS C:\> Set-Location C:\Temp
PS C:\Temp> Set-Location D:\Docs
PS D:\Docs>
Das Cmdlet Set-Location
unterscheidet sich auch durch zusätzliche Parameter von seinem Legacy-Befehl.
Hier sind einige Beispiele unten.
Set-Location -Path C:\Temp
Im obigen Beispiel-Snippet gibt der Parameter -Path
das neue Arbeitsverzeichnis unserer Skriptumgebung an. Wenn Ihr Pfad jedoch Leerzeichen enthält, denken Sie daran, diese in einfache (''
) oder doppelte (""
) Anführungszeichen einzuschließen.
Set-Location -Path "C:\Temp\Temporary Documents"
Ein weiterer hilfreicher Parameter innerhalb des Cmdlets Set-Location
ist der Parameter -PassThru
. Dieser Parameter gibt das neue Arbeitsverzeichnis zurück, das wir verwenden können, um den zurückgegebenen Wert in einer Variablen zu speichern.
Beispielcode:
$newDir = Set-Location -Path C:\Temp -PassThru
Write-Output $newDir.path
Ausgabe:
C:\Temp
Sie können auch nur auf die vollständige Eigenschaftenliste des Cmdlets Set-Location
zugreifen, wenn Sie nur den Parameter -PassThru
haben.
Beispielcode:
Set-Location -Path G: -PassThru | fl *
Ausgabe:
Drive : G
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : G:\
Path : G:\
Schließlich verwendet Windows PowerShell neben cd
und chdir
auch sl
als weiteren Alias für Set-Location
. Sie können dies für einen schnelleren und reibungsloseren Skripting-Ansatz verwenden.
sl -Path C:\Temp
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn