Windows PowerShell ortam değişkenlerini ayarlama

PATH ortam değişkenini ayarlamanın yalnızca eski komut istemini etkilediğini öğrendim. PowerShell'in farklı ortam ayarları var gibi görünüyor. PowerShell (v1) için ortam değişkenlerini nasıl değiştirebilirim?

Not:

Değişikliklerimi kalıcı hale getirmek istiyorum, böylece PowerShell'i her çalıştırdığımda ayarlamam gerekmeyecek. PowerShell'in bir profil dosyası var mı? Unix'teki Bash profili gibi bir şey mi?

PowerShell oturumu sırasında bir süre sonra PATH ortam değişkenine geçici olarak eklerseniz, şunları yapabilirsiniz Bu şekilde yap:

$env:Path += ";C:\Program Files\GnuWin32\bin"
Yorumlar (7)
Çözüm

Gerçek ortam değişkenlerinin değiştirilmesi şu şekilde yapılabilir 'env: namespace / drive' bilgilerini kullanarak. Örneğin, bu kodu path ortam değişkenini güncelleyecektir:

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

Ortam ayarlarını kalıcı hale getirmenin yolları vardır, ancak Eğer bunları sadece PowerShell'den kullanıyorsanız, muhtemelen başlatmak için profilinizi kullanmanız çok daha iyi ayarlar. Başlangıçta, PowerShell herhangi bir .ps1 altındaki WindowsPowerShell dizininde bulduğu dosyalar Belgelerim klasörü. Tipik olarak bir profile.ps1 dosya zaten orada. Benim bilgisayarımdaki yol

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

Ayrıca kullanıcı/sistem ortam değişkenlerini kalıcı olarak (yani kabuk yeniden başlatıldığında kalıcı olacak şekilde) aşağıdaki şekilde değiştirebilirsiniz:

Bir sistem ortam değişkenini değiştirme

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

Bir kullanıcı ortam değişkenini değiştirme

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

Yorumlardan kullanım - sistem ortam değişkenine ekleyin

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

Eğer tip yazmak istemiyorsanız string tabanlı bir çözüm de mümkündür

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