"Windows PowerShell" aplinkos kintamųjų nustatymas

Išsiaiškinau, kad PATH aplinkos kintamojo nustatymas turi įtakos tik senajai komandų eilutei. Atrodo, kad "PowerShell" turi kitokius aplinkos nustatymus. Kaip pakeisti "PowerShell" (v1) aplinkos kintamuosius?

Pastaba:

Noriu, kad pakeitimai būtų nuolatiniai, kad nereikėtų jų nustatyti kiekvieną kartą paleidžiant "PowerShell". Ar "PowerShell" turi profilio failą? Kažkas panašaus į "Bash" profilį "Unix" sistemoje?

Jei per "PowerShell" seansą reikia laikinai pridėti PATH aplinkos kintamąjį, galite tai padaryti taip:

$env:Path += ";C:\Program Files\GnuWin32\bin"
Komentarai (7)
Sprendimas

Pakeisti tikruosius aplinkos kintamuosius galima naudojant env: vardų erdvė / diskas informaciją. Pavyzdžiui, šis kodas atnaujins aplinkos kintamąjį path:

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

Yra būdų, kaip aplinkos nustatymus padaryti nuolatinius, bet jei juos naudojate tik iš "PowerShell", tikriausiai daug geriau naudoti savo profilį, kad inicijuotumėte nustatymus. Paleidimo metu "PowerShell" paleis bet kokį .ps1 failus, kuriuos randa kataloge WindowsPowerShell, esančiame po Mano dokumentai aplanke. Paprastai turite profile.ps1 failą. Kelias mano kompiuteryje yra toks

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

Taip pat galite keisti vartotojo/sistemos aplinkos kintamuosius nuolat (t. y. jie išliks po visų apvalkalo paleidimų iš naujo) naudodami šiuos veiksmus:

modifikuoti sistemos aplinkos kintamąjį

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

Pakeisti naudotojo aplinkos kintamąjį

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

Naudojimas iš komentarų - pridėti prie sistemos aplinkos kintamojo

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

Įmanomas ir eilutėmis pagrįstas sprendimas, jei nenorite rašyti tipų

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