J'essaie d'ajouter C:\xampp\php
à ma PATH
variable d'environnement système dans Windows.
Je l'ai déjà ajouté à l'aide de la boîte de dialogue Variables d'environnement.
Mais quand je tape dans ma console:
C:\>path
il n'affiche pas le nouveau C:\xampp\php
répertoire:
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
J'ai deux questions:
- Pourquoi est-ce arrivé? Y a-t-il quelque chose que j'ai fait de mal?
- De plus, comment ajouter des répertoires à ma
PATH
variable à l'aide de la console (et par programme, avec un fichier de commandes)?
Réponses:
Cela modifie uniquement le registre. Un processus existant n'utilisera pas ces valeurs. Un nouveau processus le fera s'il est démarré après cette modification et n'hérite pas de l'ancien environnement de son parent.
Vous n'avez pas spécifié comment vous avez démarré la session de console. Le meilleur moyen de garantir cela est de quitter le shell de commande et de le réexécuter. Il devrait ensuite hériter du PATH mis à jour.
la source
WM_SETTINGCHANGE
mettrait-elle à jour les variables si un message était envoyé depuis une application? stackoverflow.com/a/8358361Option 1
Après avoir modifié
PATH
l'interface graphique, fermez et rouvrez la fenêtre de la console.Cela fonctionne car seuls les programmes démarrés après la modification verront le nouveau
PATH
.Option 2
Exécutez cette commande dans la fenêtre de commande que vous avez ouverte:
Cette commande s'ajoute
C:\your\path\here\
au courantPATH
.Décomposer:
set
- Une commande qui modifie les variables d'environnement de cmd uniquement pour la session cmd actuelle ; les autres programmes et le système ne sont pas affectés.PATH=
- Signifie qu'ilPATH
s'agit de la variable d'environnement à modifier temporairement.%PATH%;C:\your\path\here\
- La%PATH%
pièce se développe à la valeur actuelle dePATH
, puis y;C:\your\path\here\
est concaténée. Cela devient le nouveauPATH
.la source
Vous pouvez ajouter définitivement un chemin d'accès à l'
PATH
aide de lasetx
commande:Supprimez l'
/M
indicateur si vous souhaitez définir l'utilisateurPATH
au lieu du systèmePATH
.Remarques:
setx
commande est uniquement disponible dans Windows 7 et versions ultérieures.Vous devez exécuter cette commande à partir d'une invite de commandes élevée.
Si vous souhaitez uniquement le modifier pour la session en cours, utilisez set .
la source
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
définir la valeur PATH au niveau de la machine%PATH%
variable, cette commande fusionne les variables env globales avec celles des utilisateurs. N'est-ce pas? Cela peut créer des effets secondaires indésirables, en particulier avec le commutateur / M%PATH%
variable peut ne pas être synchronisée avec les variables d'environnement car elle est chargée au lancement de l'invite de commande et jamais rechargée par la suite (même lors de l'exécution de la commande setx). Il aurait également pu être modifié localement par des scripts précédemment exécutés.Vous n'avez besoin d'aucune commande
set
ousetx
, ouvrez simplement le terminal et tapez:Cela montre la valeur actuelle de la variable PATH. Maintenant, vous voulez y ajouter un répertoire? Tapez simplement:
Si, pour une raison quelconque, vous souhaitez effacer la variable PATH (aucun chemin d'accès ou supprimer tous les chemins d'accès), tapez:
Mise à jour
Comme Danial Wilson l'a noté dans le commentaire ci-dessous, il définit le chemin uniquement dans la session en cours. Pour définir le chemin d'accès de manière permanente,
setx
mais soyez conscient, bien que cela définisse le chemin d'accès de façon permanente mais PAS dans la session en cours, vous devez donc démarrer une nouvelle ligne de commande pour voir les modifications, plus d'informations ici .Pour vérifier si une variable d'environnement existe ou voir sa valeur, utilisez la commande ECHO:
la source
PATH %PATH%;C:\Program Files\...
au lieu dePATH "%PATH%;C:\Program Files\..."
J'utiliserais plutôt PowerShell!
Pour ajouter un répertoire à PATH à l'aide de PowerShell, procédez comme suit:
Pour définir la variable pour tous les utilisateurs, à l'échelle de la machine, la dernière ligne doit ressembler à:
Dans un script PowerShell, vous voudrez peut-être vérifier la présence de votre
C:\xampp\php
avant d'ajouter à PATH (au cas où il aurait été ajouté précédemment). Vous pouvez l'encapsuler auif
conditionnel.Donc, tout mettre ensemble:
Mieux encore, on pourrait créer une fonction générique. Fournissez simplement le répertoire que vous souhaitez ajouter:
Vous pourriez améliorer les choses en faisant un peu de polissage. Par exemple, utiliser
Test-Path
pour confirmer que votre répertoire existe réellement.la source
SetEnvironmentVariable
avec leMachine
paramètre dont vous avez besoin pour ouvrir le PowerShell avec des droits d'administrateur$env:userprofile
.user
oumachine
dans l'appel deGetEnvironmentVariable
. Sinon,$PATH
contiendra la valeur de la partie utilisateur et machine du registre, ce qui fera exploser inutilement la variable de chemin lors du stockage.SETX plus sûr
Hochez la tête
SETX
à tous les commentaires sur la réponse initiale de @ Nafscript .SETX
par défaut mettra à jour votre chemin utilisateur .SETX ... /M
mettra à jour votre chemin système .%PATH%
contient le chemin système avec le chemin utilisateur ajoutéAvertissements
PATH
-SETX
tronquera vos fichiers indésirables de plus de 1024 caractèresSETX %PATH%;xxx
- ajoute le chemin du système dans le chemin de l'utilisateurSETX %PATH%;xxx /M
- ajoute le chemin utilisateur dans le chemin systèmeLa page ss64 SETX contient de très bons exemples. Surtout, il indique où se trouvent les clés de registre pour
SETX
vsSETX /M
Instructions d'utilisation
Ajouter à l'utilisateur
PATH
append_user_path.cmd
Ajouter au système
PATH
append_system_path.cmd
. Doit être exécuté en tant qu'administrateur.(c'est fondamentalement la même chose sauf avec un différent
Key
et leSETX /M
modificateur)Alternatives
Enfin, il existe potentiellement une version améliorée appelée SETENV recommandée par la page ss64 SETX qui divise la définition des variables d'environnement utilisateur ou système.
1. Pas strictement vrai
la source
Tard dans la soirée - mais pratique si vous êtes déjà dans le répertoire que vous souhaitez ajouter à PATH.
set PATH=%PATH%;%CD%
modifier: selon le commentaire - fonctionne avec les fenêtres standard cmd mais pas en PowerShell.
Pour PowerShell, l'
%CD%
équivalent est[System.Environment]::CurrentDirectory
la source
[System.Environment]::CurrentDirectory
Mis à part toutes les réponses, si vous voulez un bel outil GUI pour éditer vos variables d'environnement Windows, vous pouvez utiliser l'éditeur d'environnement rapide
essayez-le! son sûr à utiliser et génial!
http://www.rapidee.com/en/
la source
Pour remplacer les exécutables déjà inclus;
la source
La vérification des suggestions ci-dessus sur Windows 10 LTSB, et avec un aperçu des contours "aide" (qui peuvent être consultés en tapant "commande /?" Sur la cmd), m'a amené à la conclusion que la commande PATH modifie la variable d'environnement système Valeurs de chemin uniquement pour la session en cours, mais après le redémarrage, toutes les valeurs sont réinitialisées à leur valeur par défaut, tout comme elles l'étaient avant d'utiliser la commande PATH.
D'un autre côté, l'utilisation de la commande SETX avec des privilèges administratifs est beaucoup plus puissante, elle modifie définitivement ces valeurs (ou au moins jusqu'à la prochaine utilisation de cette commande ou jusqu'à la prochaine manipulation manuelle de ces valeurs par l'interface graphique ...).
Mais pour plus de clarté, j'ai pensé que partager ici la meilleure utilisation de la syntaxe SETX qui fonctionnait pour moi pourrait aider quelqu'un un jour:
où tout signe égal '=' doit être évité, et ne vous inquiétez pas des espaces! il n'est pas nécessaire d'insérer plus de guillemets pour un chemin qui contient des espaces à l'intérieur - le signe de division ';' fait le travail.
Le mot clé PATH qui suit le SETX définit quel ensemble de valeurs doit être modifié parmi les valeurs possibles des variables d'environnement système, et le% PATH% (le mot PATH entouré par le signe de pourcentage) à l'intérieur des guillemets, indique au système d'exploitation de quitter l'existant PATH les valeurs telles qu'elles sont et ajoutez le chemin suivant (celui qui suit le signe de division «;») aux valeurs existantes.
HTH
la source
En ce qui concerne le point 2, j'utilise un simple fichier de commandes qui remplit
PATH
ou d'autres variables d'environnement pour moi. Par conséquent, il n'y a pas de pollution des variables d'environnement par défaut. Ce fichier batch est accessible de partout donc je peux taper:la source
source
un tel fichier, comme. mybatchfile
).Dans une invite de commande, vous dites à Cmd d'utiliser la ligne de commande de l'Explorateur en le faisant précéder de
start
.Alors
start Yourbatchname
.Notez que vous devez vous inscrire comme si son nom était
batchfile.exe
.Les programmes et les documents peuvent être ajoutés au registre. Ainsi, en tapant leur nom sans leur chemin dans la boîte de dialogue ou le raccourci Démarrer - Exécuter, Windows peut les trouver.
Il s'agit d'un fichier reg générique. Copiez les lignes ci-dessous dans un nouveau document texte et enregistrez-le sous anyname.reg. Modifiez-le avec vos programmes ou documents.
Dans les chemins, utilisez \ pour séparer les noms de dossier dans les chemins de clé, car regedit utilise un seul \ pour séparer ses noms de clé. Tous les fichiers reg commencent par REGEDIT4. Un point-virgule transforme une ligne en commentaire. Le symbole @ signifie affecter la valeur à la clé plutôt qu'une valeur nommée.
Le fichier n'a pas besoin d'exister. Cela peut être utilisé pour définir Word.exe pour ouvrir Winword.exe.
La frappe
start batchfile
démarre iexplore.exe.On vous a déjà parlé du chemin dans une autre réponse. Voir également
doskey /?
pour les macros cmd (elles ne fonctionnent que lors de la frappe).Vous pouvez exécuter des commandes de démarrage pour CMD. À partir de la référence technique du Kit de ressources Windows
AutoRun
La description
Contient des commandes qui sont exécutées à chaque démarrage de Cmd.exe.
la source
Une meilleure alternative au Panneau de configuration est d'utiliser ce programme gratuit de sourceforge appelé Pathenator:
https://sourceforge.net/projects/pathenator/
Cependant, il ne fonctionne que pour les systèmes dotés de Dot.Net 4.0 ou supérieur, tels que Windows 7,8 ou 10.
la source
Si vous exécutez la commande
cmd
, elle mettra à jour toutes les variables système pour cette fenêtre de commande.la source
exit
deux fois, d'abord pour fermer le nouveau, puis pour fermer la première session (avec l'ancien environnement).utiliser le chemin de gtools
il fait les choses de manière intuitive, par exemple:
et montre des résultats sans avoir besoin de générer un nouveau cmd !
la source
Sauvegardez ma variable d'environnement PATH actuelle: exécutez
cmd
et exécutez la commande:path >C:\path-backup.txt
Récupère ma valeur de chemin actuelle dans le fichier C: \ path.txt (de la même manière)
setx path "Here you should insert string from buffer (new path value)"
php -v
la source
Aussi trivial que cela puisse être, j'ai dû redémarrer Windows face à ce problème.
J'utilise Windows 7 x64. J'ai fait une mise à jour manuelle de la variable PATH du système. Cela a bien fonctionné si j'exécute cmd.exe à partir du menu stat. Mais si je tape "cmd" dans la barre d'adresse de l'Explorateur Windows, il semble charger le PATH d'ailleurs, qui n'a pas eu mes modifications manuelles.
(Pour éviter tout doute - oui, j'ai fermé et relancé cmd plusieurs fois avant de redémarrer et cela n'a pas aidé.)
la source