Visualizza e modifica le variabili d’ambiente

Discussione

Nei file batch, le variabili d’ambiente sono il modo principale per memorizzare informazioni temporanee o per trasferire informazioni tra i file batch. Le variabili di PowerShell e i parametri degli script sono modi più efficaci per risolvere questi problemi, ma le variabili d’ambiente continuano a fornire un modo utile per accedere alle impostazioni di sistema comuni, come il percorso del sistema, la directory temporanea, il nome di dominio, il nome utente e altro ancora.

PowerShell rende visibili le variabili d’ambiente attraverso il suo provider d’ambiente: un contenitore che ti permette di lavorare con le variabili d’ambiente proprio come faresti con gli elementi del filesystem o i provider del registro. Per impostazione predefinita, PowerShell definisce un’unità env: (molto simile a c: o d:) che fornisce l’accesso a queste informazioni:

PS > dir env:Name Value---- -----Path c:\progra~1\ruby\bin;C:\WINDOWS\system32;C:\TEMP C:\DOCUME~1\Lee\LOCALS~1\TempSESSIONNAME ConsolePATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;(...)

Siccome si tratta di una normale unità PowerShell, il modo completo per ottenere il valore di una variabile d’ambiente appare così:

PS > Get-Content Env:\UsernameLee

Quando si tratta di variabili d’ambiente, però, questa è una sintassi che non avrete quasi mai bisogno di usare, a causa del supporto di PowerShell per il Get-Content e Set-Content sintassi delle variabili, che si abbrevia in:

PS > $env:UsernameLee

Questa sintassi funziona per tutte le unità ma è usata più comunemente per accedere alle variabili di ambiente. Per maggiori informazioni su questa sintassi, consultate Accesso alle informazioni sull’invocazione del vostro comando.

Alcune variabili d’ambiente in realtà ottengono i loro valori da una combinazione di due posti: le impostazioni dell’intera macchina e le impostazioni dell’utente corrente. Se vuoi accedere ai valori delle variabili d’ambiente configurate specificamente a livello di macchina o di utente, usa il metodo ::GetEnvironmentVariable(). Per esempio, se avete definito una directory tools nel vostro percorso, potreste vedere:

PS > ::GetEnvironmentVariable("Path", "User")d:\lee\tools

Per impostare queste variabili d’ambiente specifiche della macchina o dell’utente in modo permanente, usate il metodo ::SetEnvironmentVariable():

::SetEnvironmentVariable(<name>, <value>, <target>

)

Il parametro target definisce dove questa variabile deve essere memorizzata: User per l’utente corrente e Machine per tutti gli utenti della macchina. Per esempio, per aggiungere permanentemente la directory degli strumenti al tuo percorso:

$pathElements = @(::GetEnvironmentVariable("Path", "User") -split ";")$pathElements += "d:\tools"$newPath = $pathElements -join ";"::SetEnvironmentVariable("Path", $newPath, "User")

Per maggiori informazioni sulla modifica del percorso di sistema, vedi Modificare il percorso utente o di sistema.

Per maggiori informazioni sulla sintassi delle variabili Get-Content e Set-Content, vedi Variabili. Per maggiori informazioni sul fornitore di ambiente, digitare Get-Help About_Environment.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *