Qual è la differenza tra
SETX
eSET
?
Secondo la mia comprensione:
entrambi vengono utilizzati per impostare le variabili di ambiente
SETX
sia per le variabili utente.
SET
è per le variabili della shell.
Qual è la differenza tra
SETX
eSET
?
Secondo la mia comprensione:
entrambi vengono utilizzati per impostare le variabili di ambiente
SETX
sia per le variabili utente.
SET
è per le variabili della shell.
Risposte:
Temo che non sia così semplice. Le variabili di ambiente non sono limitate dall'ambito, come suggerisci, ma hai ragione nel dire che la durata del valore nella variabile è diversa quando si confrontano i verbi.
Set
modifica i valori dell'ambiente della shell corrente (la finestra) e la modifica è immediatamente disponibile, ma è temporanea. La modifica non influirà su altre shell in esecuzione e non appena si chiude la shell, il nuovo valore viene perso fino a quando non si esegue nuovamente l'impostazione.
setx
modifica il valore in modo permanente, il che influisce su tutte le shell future, ma non modifica l'ambiente delle shell già in esecuzione. Devi uscire dalla shell e riaprirla prima che la modifica sia disponibile, ma il valore rimarrà modificato fino a quando non lo cambi nuovamente.
Vedi qui per un esempio: http://batcheero.blogspot.com/2008/02/set-and-setx.html
In realtà possiamo impostare la variabile su tre ambiti:
1. Shell
2. Utente
3. Sistema (macchina) o globale
C:\Users\977246>set /?
Displays, sets, or removes cmd.exe environment variables.
SET [variable=[string]]
variable Specifies the environment-variable name.
string Specifies a series of characters to assign to the variable.
Type SET without parameters to display the current environment variables.
C:\Users\977246>setx /?
SetX has three ways of working:
Syntax 1:
SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
Syntax 2:
SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
Syntax 3:
SETX [/S system [/U [domain\]user [/P [password]]]]
/F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
Description:
Creates or modifies environment variables in the user or system
environment. Can set variables based on arguments, regkeys or
file input.
To remove the variable set value to empty string as follows
Example: setx path ""
In utente GUI e variabili di ambiente di sistema.
Aggiunta di un punto perso da altri risponditori.
Per impostare una variabile di ambiente di sistema anziché una variabile di ambiente utente, è sufficiente utilizzare l'opzione / m nel comando setx ed eseguirla da un prompt dei comandi elevato (amministratore).
setx variable value /m
Esempio: aprire il prompt dei comandi come amministratore ed eseguire
setx Path "%Path%;C:\Users\User\Libs" /m
Spiegazione: Il comando precedente aggiungerà "C: \ Users \ User \ Libs" alla variabile Path già esistente (variabile di ambiente di sistema).
Senza l' argomento / m , modificherà o creerà solo una variabile Path a livello di utente.
Dal manuale utente setx,
/ M Specifica che la variabile deve essere impostata nell'ambiente di sistema (HKEY_LOCAL_MACHINE). L'impostazione predefinita è impostare la variabile nell'ambiente HKEY_CURRENT_USER.
SET /?
eSETX /?
- questo dovrebbe darti alcune idee.