Jeg har fundet ud af, at indstillingen af miljøvariablen PATH kun påvirker den gamle kommandoprompt. PowerShell synes at have andre miljøindstillinger. Hvordan ændrer jeg miljøvariablerne for PowerShell (v1)?
Bemærk:
Jeg vil gerne gøre mine ændringer permanente, så jeg ikke behøver at indstille det hver gang jeg kører PowerShell. Har PowerShell en profilfil? Noget i stil med Bash-profil på Unix?
Hvis du på et tidspunkt i løbet af en PowerShell-session har brug for at midlertidigt tilføje til PATH-miljøvariablen midlertidigt, kan du gøre det på denne måde:
$env:Path += ";C:\Program Files\GnuWin32\bin"
Ændring af de faktiske miljøvariabler kan ske ved at
bruge oplysningerne env: namespace / drive
. For eksempel kan dette
kode vil opdatere miljøvariablen path:
$env:Path = "SomeRandomPath"; (replaces existing path)
$env:Path += ";SomeRandomPath" (appends to existing path)
Der er måder at gøre miljøindstillingerne permanente på, men
hvis du kun bruger dem fra PowerShell, er det sandsynligvis
meget bedre at bruge din profil til at igangsætte den
indstillinger. Ved opstart vil PowerShell køre enhver .ps1
filer, den finder i mappen WindowsPowerShell
under
mappen Mine dokumenter. Typisk har du en profile.ps1
fil allerede der. Stien på min computer er
C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1
Du kan også ændre bruger-/systemmiljøvariabler permanent (dvs. de vil være vedvarende på tværs af genstarter af skallen) med følgende:
Ændre en system-miljøvariabel
[Environment]::SetEnvironmentVariable
("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)
Ændre en brugermiljøvariabel
[Environment]::SetEnvironmentVariable
("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)
Anvendelse fra kommentarer - tilføj til systemmiljøvariabel
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
[EnvironmentVariableTarget]::Machine)
Stringbaseret løsning er også mulig, hvis du ikke ønsker at skrive typer
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")