Et quelle est la différence entre
SETX
etSET
?
Selon ma compréhension: les
deux sont utilisés pour définir les variables d'environnement
SETX
est pour les variables utilisateur.
SET
est pour les variables shell.
windows
environment-variables
Premraj
la source
la source
SET /?
etSETX /?
- cela devrait vous donner quelques idées.Réponses:
J'ai bien peur que ce ne soit pas si simple. Les variables d'environnement ne sont pas limitées par la portée, comme vous le suggérez, mais vous avez raison de dire que la durée de vie de la valeur dans la variable est différente lors de la comparaison des verbes.
Set
modifie les valeurs d'environnement du shell actuel (de la fenêtre) et la modification est disponible immédiatement, mais elle est temporaire. La modification n'affectera pas les autres shells en cours d'exécution et, dès que vous fermez le shell, la nouvelle valeur est perdue jusqu'à ce que vous exécutiez à nouveau le jeu.setx
modifie la valeur de façon permanente, ce qui affecte tous les futurs shells, mais ne modifie pas l'environnement des shells en cours d'exécution. Vous devez quitter le shell et le rouvrir avant que la modification ne soit disponible, mais la valeur restera modifiée jusqu'à ce que vous la changiez à nouveau.Voir ici pour un exemple: http://batcheero.blogspot.com/2008/02/set-and-setx.html
la source
En fait, nous pouvons définir une variable sur trois portées:
1. Shell
2. Utilisateur
3. Système (Machine) ou Global
SET: Créer ou mettre à jour la portée actuelle du shell pour temporaire.
SETX: Créer ou mettre à jour les variables d'environnement utilisateur actuelles pour les permanentes.
Dans les variables d'environnement utilisateur et système de l'interface graphique.
la source
Ajout d'un point qui a été manqué par d'autres répondeurs.
Pour définir une variable d'environnement système plutôt qu'une variable d'environnement utilisateur, il suffit d'utiliser l'option / m dans la commande setx et de l'exécuter à partir d'une invite de commande élevée (administrateur).
Exemple: ouvrez l'invite de commande en tant qu'administrateur et exécutez
Explanation: La commande ci-dessus va ajouter "C: \ Users \ User \ Libs" à la variable de chemin déjà existante (variable d'environnement système).
Sans l' argument / m , il ne modifiera ou ne créera qu'une variable de chemin d'accès de niveau utilisateur.
À partir du manuel de l'utilisateur setx,
la source