Gibt es einen PowerShell-Befehl, mit dem Sie überprüfen können, ob ein Alias existiert oder nicht?
(Ich habe mich im Internet umgesehen, und es sieht nicht so aus.)
Sie können Test-Path
dafür verwenden:
Verwenden Sie einfach:
%Vor%oder
%Vor%Wenn Sie etwas tun möchten, wenn der Alias nicht existiert.
Wie andere geschrieben haben, funktioniert auch Get-Alias
, aber Test-Path
vermeidet es, die Liste der Aliase zu erstellen, so dass alle etwas schneller sind, wenn Sie sich darum kümmern.
Weitere Erklärung:
Powershell verwendet Pfadnamen, um auf viel mehr als nur Dateien zuzugreifen. Mit C:
prefix können Sie auf Dateien auf Laufwerk C zugreifen. Mit alias:
können Sie auf Aliase zugreifen und andere Qualifizierer können auf Funktionen wie Befehle, Registrierungsschlüssel, Sicherheitszertifikate und so weiter. Daher ist alias:l*
ein Platzhalterpfadname, der allen Aliasen entspricht, die mit dem Buchstaben l
beginnen, genauso wie C:l*
mit allen Dateien übereinstimmt, die mit l
im Stammverzeichnis von Laufwerk C beginnen.
Test-Path
ist ein Commandlet, das prüft, ob der Pfad nur dann auf ein vorhandenes Objekt mit einem True-Ergebnis verweist, wenn mindestens ein vorhandenes Objekt mit diesem Pfad übereinstimmt. Normalerweise würden Sie es verwenden, um zu testen, ob eine Datei existiert, aber Sie können auch die Existenz von allem testen, das mit einem geeigneten Qualifier adressierbar ist.
Ja, verwenden Sie den Befehl Get-Alias
.
Beispiel:
%Vor% Um eine Liste aller Befehle zu erhalten, die mit Aliasen umgehen, verwenden Sie Get-Command
Eine weitere Option, wenn Sie nur einen Aliasnamen festlegen möchten, wenn dieser noch nicht existiert, ist die Verwendung des Parameters -Force
in Set-Alias
. Daher erhalten Sie keine Fehlermeldung, dass der Alias bereits existiert:
Dinge wie if(!(Get-Alias -Name foo))
Fehler, wenn der Alias nicht existiert.
wollte nur noch einen weiteren Weg hinzufügen, um dies zu erreichen ..
%Vor%Fangen Sie die Ausnahme ab und prüfen Sie, ob das mit der Bedingung für die Boolesche Logik der Existenz übereinstimmt. Ich habe festgestellt, dass dies gut funktioniert, es sei denn, die Ausnahme ist anders als erwartet.
(getestet in Version 5)
So benutze ich das oben genannte (Vielen Dank an alle!):
%Vor%Dies ist am Ende jedes Skripts, das ein Modul ist oder werden wird. Es fügt dem System des Benutzers einen Alias hinzu, ohne einen Fehler zu verursachen oder einen vorhandenen Alias zu überschreiben, wenn der Aliasname bereits existiert.
Tags und Links powershell powershell-v3.0