Festlegen von Windows PowerShell-Umgebungsvariablen

Ich habe herausgefunden, dass das Setzen der Umgebungsvariablen PATH nur die alte Eingabeaufforderung betrifft. PowerShell scheint andere Umgebungseinstellungen zu haben. Wie kann ich die Umgebungsvariablen für PowerShell (v1) ändern?

Anmerkung:

Ich möchte meine Änderungen dauerhaft machen, so dass ich sie nicht jedes Mal, wenn ich PowerShell ausführe, neu einstellen muss. Verfügt PowerShell über eine Profildatei? So etwas wie ein Bash-Profil unter Unix?

Wenn Sie zu irgendeinem Zeitpunkt während einer PowerShell-Sitzung die vorübergehend an die Umgebungsvariable PATH anhängen müssen, können Sie Sie dies auf diese Weise tun:

$env:Path += ";C:\Program Files\GnuWin32\bin"
Kommentare (7)
Lösung

Die eigentlichen Umgebungsvariablen können geändert werden, indem unter Verwendung der Information "env: Namensraum / Laufwerk". Zum Beispiel wird dieser Code die Umgebungsvariable path aktualisieren:

$env:Path = "SomeRandomPath";             (replaces existing path) 
$env:Path += ";SomeRandomPath"            (appends to existing path)

Es gibt Möglichkeiten, Umgebungseinstellungen dauerhaft zu machen, aber wenn Sie sie nur von der PowerShell aus verwenden, ist es wahrscheinlich besser, Ihr Profil zu verwenden, um die Einstellungen Einstellungen. Beim Starten führt PowerShell alle .ps1 Dateien aus, die sie im Verzeichnis WindowsPowerShell unter Ordner Eigene Dateien. Normalerweise haben Sie eine profile.ps1 Datei bereits dort. Der Pfad auf meinem Computer lautet

C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1
Kommentare (8)

Sie können auch Benutzer-/System-Umgebungsvariablen permanent (d.h. über Shell-Neustarts hinweg) wie folgt ändern:

Ändern Sie eine Systemumgebungsvariable

[Environment]::SetEnvironmentVariable
     ("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)

Ändern einer Benutzerumgebungsvariable

[Environment]::SetEnvironmentVariable
     ("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)

Verwendung von Kommentaren - Hinzufügen zur Systemumgebungsvariable

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
    [EnvironmentVariableTarget]::Machine)

String-basierte Lösung ist auch möglich, wenn Sie keine Typen schreiben wollen

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")
Kommentare (11)