Come utilizzare le variabili di ambiente CMD di Windows

0
159

Loghi di Windows 10 e 11

È facile aggiungere o modificare una variabile di ambiente con Command Prompt (CMD), ma rimuoverne una è molto più complicata. Ecco alcuni modi diversi per farlo.

Come aggiungere o modificare una variabile d’ambiente

Innanzitutto, devi avviare il prompt dei comandi, o CMD, come amministratore. Fare clic su Start, digitare “cmd” nella casella di ricerca, quindi fare clic su “Esegui come amministratore”.

Fai clic su "Esegui come amministratore".

Nota: Qualsiasi variabile di ambiente utente può essere impostata o modificata in una normale finestra del prompt dei comandi, ma la modifica delle variabili di ambiente a livello di sistema richiede un prompt dei comandi con privilegi elevati.

Esistono due modi distinti per impostare le variabili di ambiente.

Impostazione temporanea di una variabile d’ambiente

Il primo usa il comando set. Set definisce una variabile di ambiente esclusivamente all’interno del processo in cui è stata definita, in altre parole, la variabile funziona solo nella finestra che hai aperto o nello script che la contiene.

Ecco un esempio: supponiamo di voler creare una variabile di ambiente denominata LifeAnswerVar e impostare il valore su 42. Il comando sarebbe set LifeAnswerVar=42.

Mentre quella finestra è aperta, LifeAnswerVar avrà il valore 42.

Prompt dei comandi con set lifevar=42

Annuncio

Quando viene chiuso, la variabile di ambiente e il suo valore vengono eliminati.

Una nuova finestra CMD con LifeAnswerVar undefined.

Lo stesso identico metodo funziona se si desidera modificare temporaneamente una variabile di sistema di Windows esistente. Tutto quello che devi fare è sostituire la variabile di sistema che desideri modificare al posto di LifeAnswerVar e il valore che desideri assegnare al posto di 42.

Ad esempio, se desideri spostare la cartella TMP in C:Cartella di esempio, devi inserire il comando set TMP=C:"Example Folder".

Cartella TMP spostata nella cartella di esempio

La prima riga, set TMP, mostra il valore corrente di TMP. La seconda riga assegna a TMP un nuovo valore. La terza riga conferma che è cambiato.

Impostazione permanente di una variabile d’ambiente

Il secondo modo usa setx. Setx definisce le variabili di ambiente di Windows in modo permanente. Persistono tra Windows e tra i riavvii e vengono scritti nel registro di Windows. Queste variabili di ambiente possono essere definite per un utente specifico o possono essere definite per l’uso a livello di sistema.

Il comando setx ExVar1 Tomato /m creerà una nuova variabile di ambiente denominata ExVar1 e le assegnerà il valore “Pomodoro”. L’argomento /m specifica che la nuova variabile dovrebbe essere a livello di sistema, non solo per l’utente corrente.

ExVar1 definito nel prompt dei comandi

Annuncio

Utilizzare lo stesso identico comando per modificare una variabile di ambiente esistente, sostituendo ExVar1 con il nome della variabile che si desidera modificare.

Nota: Se si utilizza setx per modificare una variabile e si imposta per visualizzare il valore della variabile, set non visualizzerà il valore corretto fino all’apertura di una nuova finestra del prompt dei comandi.

Se vuoi aggiungere o modificare una variabile d’ambiente utente, ometti semplicemente l’argomento /m dal comando.

Come rimuovere una variabile d’ambiente

Rimuovere una variabile di ambiente è un po’ più difficile che aggiungerne o modificarne una.

Nota: Come per l’aggiunta di una variabile, qualsiasi variabile di ambiente utente può essere eliminata in una normale finestra del prompt dei comandi, ma l’eliminazione di una variabile di ambiente a livello di sistema richiede un prompt dei comandi con privilegi elevati.

Rimozione temporanea di una variabile d’ambiente

Se si desidera rimuovere temporaneamente una variabile di ambiente per il processo corrente, ad esempio uno script, una finestra di PowerShell o una finestra del prompt dei comandi, è possibile utilizzare il comando set. Tutto quello che devi fare è non assegnare alcun valore alla variabile.

Ad esempio, cosa succede se si dispone della definizione della variabile ExVar1=Tomato nelle variabili di ambiente a livello di sistema, ma volevi ignorarlo per un particolare processo? Puoi digitare set ExVar1=   nel prompt dei comandi o includi quella riga nello script. La variabile non sarà impostata su nulla durante l’esecuzione dello script o fino all’apertura di una nuova finestra del prompt dei comandi.

ExVar1 temporaneamente resa vuota.

Rimozione permanente di una variabile di ambiente

La rimozione permanente di una variabile di ambiente è un po’ più complessa: devi usarla reg per farlo.

Avvertimento: Reg è la versione da riga di comando dell’editor del registro. Dovresti procedere con cautela: un errore di battitura potrebbe comportare la cancellazione accidentale di qualcosa di importante. Anche eseguire il backup della parte del registro che stai modificando non fa mai male.

Annuncio

Le variabili di ambiente per i singoli utenti sono archiviate in HKEY_CURRENT_USEREnvironment. Le variabili di ambiente a livello di sistema sono archiviate altrove, in HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment.

Usiamo il ExVar1=Tomato esempio. La variabile di ambiente ExVar1 è stata definita a livello di sistema, il che significa che si trova nella directory HKEY_LOCAL_MACHINE anziché nella directory HKEY_CURRENT_USER. In particolare, il percorso della sottochiave è:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironmentExVar1

Nota: Questo percorso contiene uno spazio. Ogni volta che è presente uno spazio in un percorso immesso in un’interfaccia della riga di comando, è necessario utilizzare le virgolette attorno al percorso, altrimenti è estremamente probabile che non venga eseguito correttamente.

Ora dobbiamo usare il reg delete comando per rimuoverlo. Tieni presente che dovrai sostituire il nome della variabile con ExVar1 nel comando seguente.

reg delete "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /f /v ExVar1

C’è molto lì, quindi analizziamolo un po’.

  • reg delete — definisce l’applicazione (reg) e il comando (delete) che stiamo usando
  • "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" — Dice a reg delete dove cercare la chiave
  • /f — Dice a reg delete di eliminare la chiave senza chiedere conferma
  • /v — Dice a reg delete che gli verrà assegnata una sottochiave specifica da eliminare
  • ExVar1 — Il nome della sottochiave che vogliamo eliminare

L’eliminazione di una variabile di ambiente per un singolo utente equivale all’eliminazione di una variabile a livello di sistema, tranne per il fatto che il percorso sarà diverso. Se ExVar1 fosse una variabile di ambiente utente, il comando per eliminarla sarebbe:

reg delete HKEY_CURRENT_USEREnvironment /f /v ExVar1

Se il comando per eliminare la variabile di ambiente ha avuto esito positivo, dovresti vedere “L’operazione è stata completata con successo” nel prompt dei comandi.

Reg delete utilizzato per rimuovere ExVar1 dalla variabile di ambiente utente

Annuncio

Ogni volta che rimuovi una variabile di ambiente come questa, devi riavviare explorer.exe. Puoi riavviare Explorer.exe manualmente oppure puoi semplicemente riavviare l’intero computer. Entrambi funzioneranno e le modifiche dovrebbero avere effetto immediatamente dopo il riavvio.