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.