Un moyen plus simple de modifier les variables d'environnement dans Windows 8? [dupliquer]

27

Duplicata possible:
que sont PATH et les autres variables d'environnement, et comment puis-je les définir ou les utiliser?

Je sais que je peux modifier mes variables d'environnement dans Windows 8 en allant sur

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

Mais honnêtement, c'est ridiculement complexe.

Existe-t-il un moyen plus simple de modifier les variables d'environnement dans Windows 8?

Par exemple, si je veux simplement ajouter un nouveau dossier à PATH, c'est vraiment ennuyeux de passer par toutes ces étapes. L'interface utilisateur est également nulle, car il est vraiment pénible d'éditer de longues valeurs de variable avec la petite entrée de texte.

Condition 1: j'ai besoin que les modifications persistent (par exemple, lorsque j'utilise setdans la console, les modifications sont perdues lorsque je ferme la console)

Exigence 2: je préférerais une solution qui n'implique pas l'installation de logiciels supplémentaires, car c'est le genre de problème que je rencontre à chaque fois que je configure une nouvelle boîte Windows.

jsalonen
la source
Nice post sur le sujet: windows-commandline.com/set-path-command-line
Royi

Réponses:

32

Avez-vous exploré la commande set et setx ? Avec eux, vous pouvez définir une variable persistante. De plus, la valeur sera appliquée immédiatement, pas après la prochaine connexion.

Exemple de SETcommande Windows :

Imprimez la variable d'environnement PATH:

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

Utilisez la commande set pour définir la variable PATH

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

La commande ci-dessus s'applique uniquement à la fenêtre actuelle et la modification est perdue lorsque la fenêtre cmd est fermée.

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

Exemple de SETXcommande Windows :

Imprimez la variable d'environnement PATH:

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

Utilisez setx pour définir la variable d'environnement:

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

Fermez et rouvrez le terminal cmd, puis exécutez:

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

Vous devez être prudent avec les guillemets doubles. Si vous laissez des guillemets entrer dans votre variable de chemin, cela pourrait casser quelque chose. Cependant, ils sont nécessaires pour spécifier des addenda au% PATH% d'origine.

Yury
la source
1
Merci pour le conseil! J'ai essayé setx PATH=%PATH%;;C:\testmais j'obtiens une erreur de syntaxe :(
jsalonen
2
Il n'y a pas de signe = lors de l'utilisation de setx. Est-ce que setx /?
EBGreen
4
Aucun argument "setx" ne définit la variable dans le contexte utilisateur uniquement. Pour définir dans le contexte du système, utilisez "setx / M". Ne pas en être conscient peut vous dérouter car "echo% PATH%" affichera les valeurs système et utilisateur concaténées.
Vituel
Remarque, vous devez redémarrer le shell après avoir effectué cette modification pour qu'il prenne effet.
Doug
note mineure: set path= ~ echo %PATH% [ set pathmontre également la valeur de PATHEXT]
gerryLowry
10

Définissez la variable d'environnement dans Windows 8.

Vous pouvez accéder au paramètre système avancé en cliquant avec le bouton droit sur Computera file-exploreret en allant sur properties.

C'est la même chose que les anciennes versions de Windows. Vous pouvez également définir des variables d'environnement à partir de la ligne de commande comme indiqué ici:

Que sont le PATH et les autres variables d'environnement, et comment puis-je les définir ou les utiliser?

vishesh
la source
4

Je les change en Powershell. Par exemple, pour ajouter un dossier à la variable PATH, ouvrez powershell puis:

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

Cela changerait cela pour tous les utilisateurs. Pour le modifier uniquement pour l'utilisateur exécutant la commande, remplacez ce dernier paramètre par «Utilisateur». Ou pour le changer temporairement dans cette session:

$env:Path += ';C:\temp'
EBGreen
la source
génial! comment faire la concaténation $ env: Path + '; C: \ Temp' à l'invite de commande? Les solutions Set & Setx expliquent ici comment définir le chemin complet à l'invite de commande, mais aucune n'explique comment AJOUTER quelque chose au chemin existant.
johny pourquoi
Voici comment ajouter quelque chose au chemin existant à une invite de commandes. / M est utilisé pour modifier la variable SYSTEM, plutôt que la variable USER. Les citations sont utilisées car "Mon dossier" contient des espaces: setx PATH "% PATH%; C: \ My Folder" / M
johny why
Le seul problème avec l'utilisation de l'invite de commande est la limite de 255 caractères, et le CHEMIN système est susceptible de dépasser cela (surtout si vous ajoutez plus de répertoires). Par conséquent, Powershell est la voie à suivre (je peux me tromper, mais je pense qu'il n'y a pas de limite de nombre de caractères avec Powershell).
johny pourquoi
3

C'est assez simple sur la ligne de commande:

set MyVar=HelloWorld

(pour accéder à la ligne de commande, tapez cmddans l'écran de démarrage>.)

Pour afficher une variable:

echo %MyVar%

Utilisez setxpour définir définitivement une variable. La syntaxe est légèrement différente. Essayez de regarder ici , ou il y a beaucoup d'autres sites qui vous diront comment l'utiliser.

ACarter
la source
Ouais merci mec, je le sais déjà, mais le problème est que si vous effectuez des changements de cette manière, ils ne persistent pas - c'est-à-dire que lorsque je ferme et rouvre la ligne de commande, les variables sont rétablies à leurs valeurs par défaut. Mis à jour ma question pour refléter cela - désolé.
jsalonen
Savez-vous si je peux faire un setqui persistera?
jsalonen
1
setx est pour des changements permanents
EBGreen
Existe-t-il un moyen de définir la variable jusqu'au prochain redémarrage? Sinon, si j'utilise set à partir d'un autre programme (disons la commande OS de Python ou MATLAB), est-ce qu'il tiendra aussi longtemps que la session du programme sera ouverte?
Royi