Gibt es einen Befehl zum Überprüfen der Alias-Existenz in PowerShell?

8

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.)

    
IbrarMumtaz 03.01.2014, 14:49
quelle

7 Antworten

8

Ich denke, Get-Alias ​​ist was du suchst.

MS Dokumentation: Ссылка

Beispiel für IF:

%Vor%     
Paul 03.01.2014, 14:53
quelle
17

Sie können Test-Path dafür verwenden:

%Vor%

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.

    
Duncan 04.01.2014 09:29
quelle
5

Ja, verwenden Sie den Befehl Get-Alias .

Beispiel:

%Vor%

Um eine Liste aller Befehle zu erhalten, die mit Aliasen umgehen, verwenden Sie Get-Command

%Vor%     
Trevor Sullivan 03.01.2014 14:51
quelle
2

Es gibt einen Provider nur für Aliase und einen Alias: Standort, so dass Sie auch Get-Childitem verwenden können.

%Vor%     
mjolinor 03.01.2014 15:34
quelle
0

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:

%Vor%

Dinge wie if(!(Get-Alias -Name foo)) Fehler, wenn der Alias ​​nicht existiert.

    
Rhumborl 16.02.2015 11:06
quelle
0

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.

    
4x0v7 17.06.2016 16:59
quelle
0

(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.

    
Dana 08.04.2017 20:41
quelle

Tags und Links