
Ich habe einige Beiträge zu Befehlszeilen-Aliasen in Windows gefunden, die meisten davon beziehen sich jedoch auf die Aliasbildung langer, cd
häufig verwendeter Befehle/Pfade, die ich für meine Zwecke nicht umsetzen kann.
In meinem Fall wechsle ich bei der Verwendung von Eingabeaufforderungen relativ häufig zwischen Windows und MacOS hin und her. Da ich zwischen den beiden hin- und herwechsele, gebe ich normalerweise in einem der beiden ls
oder dir
in dem anderen „oder“ ein und erhalte einen offensichtlichen Fehler.
Konkret zu dieser Frage möchte ich eine Art Alias von „ls“ auf „dir“ abbilden, sodass ich, wenn ich versehentlich „ls“ eingebe, die gleiche Funktionalität wie beim Befehl „dir“ erhalte. Ich brauche keine komplexe Parameterzuordnung, nur einen einfachen Alias für ls
to dir
.
Wenn es eine Lösung gibt, die für cmd funktioniert, wäre ich für eine Anleitung dankbar.
Antwort1
In PowerShell haben beide dir
die ls
gleiche Wirkung, das eine ist ein Alias des anderen.
Antwort2
In PowerShell ist ein solcher Alias bereits standardmäßig vorhanden. (Genauer gesagt, beidels
Und dir
sind Aliase für das Get-ChildItem
Cmdlet. Es hat auch Standardaliase für cat
, rm
, usw.) Verwenden Sie also DOSKEY nur für Cmd.
Ähnlich wie Bash verfügt PowerShell über Aliase und Shell-Funktionen:
Set-Alias -Name ls -Value Get-ChildItem
Set-Alias -Name vim -Value notepad.exe
Remove-Item -Path Alias:curl -ErrorAction Ignore
Function kssh {ssh -o PreferredAuthentications=gssapi-with-mic $args}
DOSKEY definiert Aliase auf der Ebene des Konsolenfensters. Sie funktionieren in Cmd, weil es jeweils eine ganze Zeile liest und die Konsole die eigentliche Eingabe verarbeiten lässt (die Tab-Vervollständigung von Dateien wird ebenfalls von der Konsole bereitgestellt). In PowerShell funktionieren sie jedoch nicht, weil es Tasten im „Rohmodus“ liest, jeweils eine Taste (es verfügt über eine eigene „PSReadline“, ähnlich der Readline von Bash).