/ / Erstellen eines benutzerdefinierten Alias ​​für gnuwin32-Tools in Windows Powershell - Befehlszeile, Powershell, Alias, Bash-Alias

Erstellen eines benutzerdefinierten Alias ​​für Gnuwin32-Tools in Windows Powershell - Befehlszeile, Powershell, Alias, Bash-Alias

Ich habe gnuwin32 installiert und an meine angehängtUmgebung, also starte ich Linux / Unix "ls", wenn ich ls in die Eingabeaufforderung tippe. Dies ist anscheinend kein Problem für Powershell, aber ich bin nicht in der Lage, einen benutzerdefinierten Alias ​​mit demselben Namen (ls) oder einem anderen Namen (lsa / ll / ld) zu erstellen folgender Fehler:

The script failed due to call depth overflow.
+ CategoryInfo          : InvalidOperation: (0:Int32) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CallDepthOverflow

Hier ist mein Powershell-Skript:

Set-Alias -name ls -value ListDirectory -Option AllScope

Function ListDirectory {
$Command = "ls -I ntuser.* -I NTUSER.*";
Invoke-Expression $Command
}

Irgendwelche Ideen? Über die Ignorierdateien benötige ich sie. Nur um sicherzugehen, dass dieser Befehl in einer guten alten Eingabeaufforderung einwandfrei funktioniert. Ich habe nur Probleme in Powershell :(

Antworten:

0 fĂĽr Antwort â„– 1

@LotPings Du hattest Recht! Hinzufügen von ".exe" zu ls tat "den Trick". Ich habe eine Schleife hinzugefügt, um eventuelle Argumente abzufangen, die ich möglicherweise übergeben möchte, und die Argumente in meiner $ Command-Variablen abgelegt. Ich bin nicht sicher, ob ich dies auf die beste Weise getan habe, aber es funktioniert! Hehe Danke noch einmal!

# gnuwin32 "ls"
Set-Alias -name ls -value ListDirectory -Option AllScope

Function ListDirectory {
$allArgs = "";
For ($i=0; $i -lt $args.Length; $i++) {
$allArgs += $args[$i] + " ";
}

$Command = "ls.exe $allArgs -I ntuser.* -I NTUSER.*";
}