Verwendung von Aliasen

Ein Alias ist ein alternativer oder Kurzname für ein Cmdlet oder ein Befehlselement, z. B. eine Funktion, ein Skript, eine Datei oder eine ausführbare Datei. Sie können den Befehl anstatt über den ausführbaren Namen mit dem Alias ausführen.

Befehlsaliase verwalten

PowerShell stellt Cmdlets zum Verwalten von Befehlsaliasen bereit. Der folgende Befehl zeigt die Cmdlets, die Aliase verwalten.

Get-Command -Noun Alias
CommandType Name         Version Source
----------- ----         ------- ------
Cmdlet      Export-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Get-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Import-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      New-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Remove-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Set-Alias    7.0.0.0 Microsoft.PowerShell.Utility

Weitere Informationen finden Sie unter about_Aliases.

Verwenden Sie das Cmdlet Get-Alias, um die in Ihrer Umgebung verfügbaren Aliase aufzulisten. Um die Aliase für ein einzelnes Cmdlet aufzulisten, verwenden Sie den Parameter Definition und geben dann den Namen des ausführbaren Befehls an.

Get-Alias -Definition Get-ChildItem
CommandType     Name
-----------     ----
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

Über den Parameter Name können Sie die Definition eines einzelnen Alias abrufen.

Get-Alias -Name gci
CommandType     Name
-----------     ----
Alias           gci -> Get-ChildItem

Zum Erstellen eines Alias verwenden Sie den Befehl Set-Alias. Sie können Aliase für Cmdlets, Funktionen, Skripts und systemeigene ausführbare Dateien erstellen.

Set-Alias -Name np -Value Notepad.exe
Set-Alias -Name cmpo  -Value Compare-Object

Kompatibilitätsaliase in Windows

PowerShell verfügt über mehrere Aliase, die es UNIX- und cmd.exe-Benutzern ermöglichen, vertraute Befehle in Windows zu verwenden. Die folgende Tabelle enthält allgemeine Befehle, das zugehörige PowerShell-Cmdlet und den PowerShell-Alias:

Windows-Befehlsshell UNIX-Befehl PowerShell-Cmdlet PowerShell-Alias
cd, chdir cd Set-Location sl, cd, chdir
cls clear Clear-Host cls clear
copy cp Copy-Item cpi, cp, copy
del, erase, rd, rmdir rm Remove-Item ri, del, erase, rd, rm, rmdir
dir ls Get-ChildItem gci, dir, ls
echo echo Write-Output write echo
md mkdir New-Item ni
move mv Move-Item mi, move, mi
popd popd Pop-Location popd
pwd Get-Location gl, pwd
pushd pushd Push-Location pushd
ren mv Rename-Item rni, ren
type cat Get-Content gc, cat, type

Hinweis

Die Aliase in dieser Tabelle sind Windows-spezifisch. Manche Aliase sind auf anderen Plattformen nicht verfügbar. Dies soll ermöglichen, dass der native Befehl in einer PowerShell-Sitzung funktioniert. Beispielsweise ls ist nicht als PowerShell-Alias unter macOS oder Linux definiert. Folglich wird der systemeigene Befehl statt Get-ChildItem ausgeführt.

Alternative Namen für Befehle mit Parametern erzeugen

Sie können Cmdlets, Skripts, Funktionen und ausführbaren Datei einen Alias zuweisen. Im Unterschied zu einigen Unix-Shells können Sie einem Befehl, der Parameter enthält, keinen Alias zuweisen. Sie können beispielsweise zwar dem Cmdlet Get-Eventlog einen Alias zuweisen, dem Befehl Get-Eventlog -LogName System jedoch nicht. Sie müssen eine Funktion erstellen, die den Befehl mit den Parametern enthält.

Weitere Informationen finden Sie unter about_Aliases.

Parameteraliase und Kurznamen

PowerShell ermöglicht Ihnen, Kurznamen für Parameter zu erstellen. Parameteraliase werden mithilfe des Attributs Alias definiert, wenn Sie den Parameter deklarieren. Parameteraliase können nicht mithilfe der *-Alias-Cmdlets definiert werden.

Weitere Informationen finden Sie in der Dokumentation über Alias-Attribute.

Zusätzlich zu Parameteraliasen können Sie in PowerShell den Parameternamen mithilfe einiger weniger Zeichen angeben. Sie brauchen lediglich die Zeichen einzugeben, die zum eindeutigen Identifizieren des Parameters erforderlich sind. Das Cmdlet Get-ChildItem beinhaltet beispielsweise die Parameter Recurse und ReadOnly. Um den Parameter Recurse eindeutig zu identifizieren, müssen Sie lediglich -rec eingeben. Wenn Sie dies mit dem Befehlsalias kombinieren, kann Get-ChildItem -Recurse zu dir -rec verkürzt werden.

Verwenden Sie keine Aliase in Skripts

Aliase sind ein Komfortfeature, das Sie interaktiv in der Shell verwenden können. In Ihren Skripts sollten Sie allerdings immer die vollständigen Befehls- und Parameternamen verwenden.

  • Aliase können in einem Profilskript gelöscht oder neu definiert werden.
  • Möglicherweise sind nicht alle Aliase, die Sie definieren, für die Benutzer Ihrer Skripts verfügbar.
  • Denken Sie daran: Aliase erschweren das Lesen und Verwalten von Code.