Pensez également à utiliser SETX
- il définira une variable au niveau de l'utilisateur ou de la machine (disponible pour tous les utilisateurs), mais la variable sera utilisable à la prochaine ouverture de cmd.exe, ce qui fait qu'il peut être utilisé conjointement avec SET
:
::setting variable for the current user
if not defined My_Var (
set "My_Var=My_Value"
setx My_Var My_Value
)
::setting machine defined variable
if not defined Global_Var (
set "Global_Var=Global_Value"
SetX Global_Var Global_Value /m
)
Vous pouvez également modifier directement les valeurs du registre :
Variables utilisateur : HKEY_CURRENT_USER \Environment
Variables du système : HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Session Directeur \Environment
Ce qui permettra d'éviter certaines restrictions de SET et SETX comme les variables contenant =
dans leurs noms.
Montage par un tiers
SETX.exe Définit les variables d'environnement de façon permanente,
SETX peut être utilisé pour définir les variables d'environnement de la machine (HKLM) ou de l'utilisateur actuellement connecté (HKCU) :
Option /m
/m
Set the variable in the system environment HKLM.
(The default is the local environment HKCU)
Un autre exemple
::setting variable for the current user
if not defined JAVAJDK (
set "JAVAJDK=C:\Program Files\Java\jdk-13\bin"
setx JAVAJDK "C:\Program Files\Java\jdk-13\bin"
)
Dans un command.exe vous pouvez utiliser la variable comme ceci cd %JAVAJDK%
.