Frage Zu viele Ordnerpfade in PATH-Variable?


Gibt es Kosten für zu viele Ordnerpfade in der Ordnervariablen?
Ich meine, wenn Sie in Ihrer System Path Environment-Variable weiterhin Pfade hinzufügen, wird Powershell dann etwas langsamer als zuvor geladen?

Wenn es eine Leistung kostet, was ist die Alternative zum Hinzufügen einer Tonne von Ordnerpfaden in einer einzelnen PATH-Variable?


7
2017-11-26 18:34


Ursprung


Über wie viele Ordner sprichst du? Hunderte oder noch mehr? - drew010


Antworten:


Nicht sicher, warum du das überhaupt machst.

Für Powershell muss die PATH-Variable nicht geladen werden, wenn Sie sie verwenden können Profile und Aliase. Die Performance-Kosten sind die Aufforderung, jeden Ordner nach Befehlen zu durchsuchen.

Dann gibt es praktische Kosten. Pfad ist eine globale Variable. Warum sollte es verwendet werden, um etwas zu lösen, das nur von Powershell und der Konsole verwendet wird? Eine globale Lösung für ein lokales Problem führt in der Regel zu unvorhergesehenen Konsequenzen.

Eine weitere unbeabsichtigte Konsequenz ist, wenn Sie einen Befehl falsch eingeben und das System eine Datei von außerhalb Ihres Arbeitsverzeichnisses startet. Es ist nur ein Schmerz in der Rückseite und auch eine Sicherheitslücke.

Bearbeiten:

BTW, während das Betriebssystem ein Limit von 32.767 für die Variable PATH hat, hat die Eingabeaufforderung eine viel viel kürzere Länge, etwa 2.000. Ich kenne die genaue Zahl nicht.


1
2017-11-26 19:15



Ich denke, Aliase ist genau das, was ich wollte. Ich habe auch daran gedacht, separate Konsolen für separate Zwecke zu haben. Dadurch verringert sich die Wahrscheinlichkeit, dass ich eine Datei außerhalb des aktuellen Verzeichnisses starten könnte - Prasanth
Aliase und Profile werden von Konsolenbenutzern nicht ausreichend genutzt. Besonders wenn man bedenkt, dass Powershell alle anderen Konsolenbefehle emuliert. - surfasb