Modo più semplice per modificare le variabili di ambiente in Windows 8? [duplicare]


27

Possibile duplicato:
cosa sono PATH e altre variabili d'ambiente e come posso impostarle o usarle?

So che posso modificare le mie variabili di ambiente in Windows 8 andando a

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Ma onestamente, questo è ridicolmente complesso.

Esiste un modo più semplice per modificare le variabili di ambiente in Windows 8?

Ad esempio, se voglio solo aggiungere una nuova cartella a PATH, è davvero fastidioso seguire tutti questi passaggi. Anche l'interfaccia utente fa schifo, perché è davvero doloroso modificare valori di variabili lunghe con il piccolo input di testo.

Requisito 1: ho bisogno che le modifiche persistano (ad es. Quando uso setin console le modifiche vanno perse quando chiudo la console)

Requisito 2: preferirei una soluzione che non implichi l'installazione di software aggiuntivo, poiché questo è il tipo di problema che mi capita di incontrare ogni volta che configuro una nuova finestra di Windows.


Risposte:


32

Hai esplorato il comando set e setx ? Con loro puoi impostare una variabile persistente. Inoltre, il valore verrà applicato immediatamente, non dopo l'accesso successivo.

Esempio di SETcomando windows :

Stampa la variabile d'ambiente PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Utilizzare il comando set per impostare la variabile PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

Il comando precedente si applica solo alla finestra corrente e la modifica viene persa quando la finestra cmd viene chiusa.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Esempio di SETXcomando windows :

Stampa la variabile d'ambiente PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Utilizzare setx per impostare la variabile di ambiente:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Chiudi e riapri il terminale cmd, quindi esegui:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Devi stare attento con le doppie virgolette. Se lasci che le virgolette entrino nella variabile del tuo percorso, potresti rompere qualcosa. Tuttavia sono necessari per specificare gli addendum al% PATH% originale.


1
Grazie per il consiglio! Ho provato setx PATH=%PATH%;;C:\testma ricevo un errore di sintassi :(
jsalonen il

2
Non c'è nessun segno = quando si usa setx. Setx /?
EBGreen

4
Nessun argomento "setx" imposta la variabile solo nel contesto dell'utente. Per impostare nel contesto di sistema utilizzare "setx / M". Non esserne consapevoli può confondervi poiché "echo% PATH%" mostrerà i valori di sistema e utente concatenati.
Vituel,

Nota, è necessario riavviare la shell dopo aver apportato questa modifica affinché abbia effetto.
Doug,

nota minore: set path= ~ echo %PATH% [ set pathmostra anche il valore di PATHEXT]
gerryLowry il


4

Li cambio in Powershell. Ad esempio per aggiungere una cartella alla variabile PATH, aprire powershell quindi:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Ciò lo cambierebbe per tutti gli utenti. Per cambiarlo solo per l'utente che esegue il comando, cambia l'ultimo parametro in "Utente". O per cambiarlo temporaneamente in questa sessione:

$env:Path += ';C:\temp'

grande! come si fa la concatenazione $ env: Path + '; C: \ Temp' al prompt dei comandi? Le soluzioni Set & Setx qui spiegano come impostare l'intero percorso al prompt dei comandi, ma nessuno spiega come AGGIUNGERE qualcosa al percorso esistente.
johny perché il

Ecco come aggiungere qualcosa al percorso esistente al prompt dei comandi. / M viene utilizzato per modificare la variabile SYSTEM, anziché la variabile USER. Le virgolette vengono utilizzate poiché "La mia cartella" contiene spazi: setx PATH "% PATH%; C: \ My Folder" / M
johny why

L'unico problema con l'utilizzo del prompt dei comandi è il limite di 255 caratteri e il PATH del sistema probabilmente lo supererà (specialmente se si aggiungono più directory). Pertanto, Powershell è la strada da percorrere (potrei sbagliarmi, ma credo che non ci siano limiti al conteggio dei personaggi con Powershell).
johny perché il

3

È abbastanza facile da riga di comando:

set MyVar=HelloWorld

(per accedere alla riga di comando, digitare cmddalla schermata iniziale>.)

Per visualizzare una variabile:

echo %MyVar%

Utilizzare setxper impostare in modo permanente una variabile. La sintassi è leggermente diversa. Prova a cercare qui , o ci sono molti altri siti là fuori che ti diranno come usarlo.


Sì grazie amico, lo so già, ma il problema è che se si apportano modifiche in questo modo non persistono, ovvero quando chiudo e riapro la riga di comando le variabili vengono ripristinate ai valori predefiniti. Aggiornato la mia domanda per riflettere questo - scusa.
jsalonen,

Sai se posso fare una cosa setche persisterà?
jsalonen,

1
setx è per le modifiche permanenti
EBGreen

C'è un modo per impostare la variabile fino al prossimo riavvio? Altrimenti, se uso set da un altro programma (diciamo comando OS da Python o MATLAB), rimarrà per tutto il tempo in cui la sessione del programma è aperta?
Royi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.