J'essaie d'ajouter C:\xampp\php
à ma variable d'environnement système PATH
sous 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 ne montre pas le nouveau répertoire C:\xampp\php
:
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:
PATH
à l'aide de la console (et par programme, avec un fichier de traitement par lots)?Cela ne modifie que le registre. Un processus existant n'utilisera pas ces valeurs. Un nouveau processus le fera s'il est lancé après cette modification et n'hérite pas de l'ancien environnement de son parent.
Vous n'avez pas précisé comment vous avez démarré la session de console. Le meilleur moyen de vous en assurer est de quitter la commande Shell et de l'exécuter à nouveau. Il devrait alors hériter du PATH mis à jour.
Après avoir modifié PATH
avec l'interface graphique, fermez et rouvrez la fenêtre de la console.
Cela fonctionne car seuls les programmes lancés après le changement verront la nouvelle variable PATH
.
Exécutez cette commande dans la fenêtre de commande ouverte:
set PATH=%PATH%;C:\your\path\here\
Cette commande ajoute C:\your\path\here\
à la PATH
actuelle.
Le décomposer:
set
- Une commande qui modifie les variables d'environnement de cmd uniquement pour la session cmd en cours; les autres programmes et le système ne sont pas affectés.PATH=
- signifie que PATH
est la variable d'environnement à modifier temporairement.%PATH%;C:\your\path\here\
- La partie %PATH%
se développe à la valeur actuelle de PATH
et ;C:\your\path\here\
lui est ensuite concaténée. Cela devient la nouvelle PATH
.ATTENTION: Cette solution peut être destructive pour votre PATH et pour la stabilité de votre système. Comme effet secondaire, il fusionnera votre PATH utilisateur et système, et tronquera PATH à 1024 caractères. L'effet de cette commande est irréversible. Faites d'abord une sauvegarde de PATH. Voir les commentaires pour plus d'informations.
Ne pas copier-coller aveuglément cela. Utiliser avec précaution.
Vous pouvez définitivement ajouter un chemin à PATH
avec la commande setx
:
setx /M path "%path%;C:\your\path\here\"
Supprimez l'indicateur /M
si vous souhaitez définir l'utilisateur PATH
au lieu de la valeur système PATH
.
Remarques:
setx
est uniquement disponible dans Windows 7 et versions ultérieures.Vous devez exécuter cette commande à partir d'une invite de commande élevée.
Si vous voulez seulement le changer pour la session en cours, utilisez set .
Vous n'avez besoin d'aucune commande set
ou setx
, ouvrez simplement le terminal et tapez:
PATH
Ceci montre la valeur actuelle de la variable PATH. Maintenant, vous voulez ajouter un répertoire? Tapez simplement:
PATH %PATH%;C:\xampp\php
Si, pour une raison quelconque, vous souhaitez effacer la variable PATH (aucun chemin ou supprimer tous les chemins qu'elle contient), tapez:
PATH ;
Mettre à jour
Comme Danial Wilson 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 façon permanente, utilisez setx
mais soyez conscient, bien que cela définisse le chemin de manière 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 pour voir sa valeur, utilisez la commande ECHO:
echo %YOUR_ENV_VARIABLE%
En cette ère de PowerShell, j'éditerais PATH comme suit:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")
Pour définir la variable pour tous les utilisateurs, à l'échelle de l'ordinateur, la dernière ligne doit ressembler à ceci:
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
Dans un script PowerShell, vous pouvez vérifier la présence de votre C:\xampp\php
avant de l'ajouter à PATH (s'il a déjà été ajouté). Vous pouvez l'envelopper dans une condition if
.
Donc, tout mettre ensemble:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
Faites un clin d'œil à tous les commentaires sur la @ Nafscript @ SETX
answer .
SETX
par défaut mettra à jour votre chemin utilisateur.SETX ... /M
mettra à jour votre chemin system.%PATH%
contient le chemin du système avec le chemin de l'utilisateur ajoutéPATH
- SETX
tronquera votre courrier indésirable de plus de 1024 caractèresSETX %PATH%;xxx
- ajoute un chemin système dans le chemin utilisateurSETX %PATH%;xxx /M
- ajoute un chemin d'utilisateur dans le chemin systèmeLa page ss64 SETX a de très bons exemples. Il est important de noter que cela indique où sont les clés de registre pour SETX
vs SETX /M
Variables utilisateur:
HKCU\Environment
Variables système:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
PATH
append_user_path.cmd
@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1
PATH
append_system_path.cmd
. Doit être exécuté en tant qu'administrateur.
(c'est fondamentalement la même chose sauf avec un Key
et un modificateur SETX /M
différents)
@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M
Enfin, il existe potentiellement une version améliorée appelée SETENV recommandée par la page SETX de ss64 qui divise la définition des variables d’environnement utilisateur ou système.
1. Pas strictement vrai
En retard pour la fête - mais pratique si vous êtes déjà dans le répertoire que vous souhaitez ajouter à PATH.
set PATH=%PATH%;%CD%
edit: selon le commentaire - fonctionne avec les cmd standard de Windows mais pas avec PowerShell.
Pour Powershell, l'équivalent %CD%
est [System.Environment]::CurrentDirectory
Que se passe-t-il si vous tapez le chemin à l'aide de setx? Le meilleur moyen est simplement de passer par les fenêtres U.I. Panneau de configuration-> Tous les éléments du panneau de configuration-> Système-> Réglages système avancés-> Variables d'environnement
Faites défiler jusqu’à Path et sélectionnez Edit. Vous pouvez également le copier et le coller dans votre éditeur favori afin de voir le chemin complet et de le modifier plus facilement.
Pour remplacer les exécutables déjà inclus;
définir PATH = C:\xampp\php;% PATH%;
Outre toutes les réponses, vous pouvez utiliser Rapid Environment Editor si vous souhaitez qu'un outil graphique de Nice pour éditer vos variables d'environnement Windows.
l'essayer c'est sûr à utiliser et génial!
Vérifier les suggestions ci-dessus sur Windows 10 LTSB, et avec un aperçu des contours de "l’aide" (visibles en tapant "commande /?" Sur la cmd), m’a amené à la conclusion que la commande PATH modifiait 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, exactement comme avant l'utilisation de la commande PATH.
D'autre part, utiliser la commande SETX avec des privilèges administratifs est beaucoup plus puissant, il change ces valeurs pour toujours (ou au moins jusqu'à la prochaine utilisation de cette commande ou jusqu'à la prochaine fois que ces valeurs seront manipulées manuellement par une interface graphique ...).
Mais par souci de clarté, j’ai pensé que partager ici la meilleure utilisation de la syntaxe SETX, qui fonctionnait pour moi, pourrait aider un jour un jour quelqu'un:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
où tout signe égal '=' devrait être évité, et ne vous inquiétez pas pour les espaces! il n'est pas nécessaire d'insérer d'autres guillemets pour un chemin contenant des espaces à l'intérieur de celui-ci - le signe divisé ';' fait le travail.
Le mot clé PATH qui suit SETX définit l’ensemble de valeurs à modifier parmi les valeurs possibles des variables d’environnement système, et le% PATH% (le mot PATH entouré du signe de pourcentage) situé entre les guillemets, indique au système d’exploitation de laisser le Les valeurs PATH telles qu’elles sont et ajoutent le chemin suivant (celui qui suit le signe de division ';') aux valeurs existantes.
HTH
En ce qui concerne le point 2 j’utilise un simple fichier de commandes qui renseigne 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 de commandes est accessible de partout afin que je puisse taper:
c:\>mybatchfile
-- here all env. are available
c:\>php file.php
Dans une invite de commande, vous indiquez à Cmd d'utiliser la ligne de commande de l'explorateur en le préfixant avec start
.
Alors start Yourbatchname
.
Notez que vous devez vous enregistrer comme si son nom était batchfile.exe
.
Des programmes et des documents peuvent être ajoutés à la base de registres. Taper leur nom sans chemin dans la boîte de dialogue Démarrer - Exécuter ou un raccourci permet à Windows de les trouver.
Ceci est un fichier reg générique. Copiez les lignes ci-dessous dans un nouveau document texte et enregistrez-le sous le nom anyname.reg. Modifiez-le avec vos programmes ou vos 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 assigner la valeur à la clé plutôt qu’une valeur nommée.
Le fichier ne doit pas exister. Cela peut être utilisé pour configurer Word.exe afin qu'il ouvre Winword.exe.
Taper start batchfile
va démarrer iexplore.exe.
REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension>
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]
;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry
;Informs the Shell that the program accepts URLs.
;"useURL"="1"
;Sets the path that a program will use as its' default directory. This is commented out.
;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"
On vous a déjà parlé du chemin dans une autre réponse. Voir aussi doskey /?
pour les macros cmd (elles ne fonctionnent que lors de la frappe).
Vous pouvez exécuter des commandes de démarrage pour CMD. Référence technique du kit Windows Recource
AutoRun
HKCU\Software\Microsoft\Command Processor
Data type Range Default value
REG_SZ list of commands There is no default value for this entry.
La description
Contient des commandes qui sont exécutées chaque fois que vous démarrez Cmd.exe.
Sauvegardez ma variable d'environnement PATH actuelle: exécutez cmd
et exécutez la commande: path >C:\path-backup.txt
Récupère la valeur de mon chemin actuel 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
utiliser depuis gtools
il fait les choses de manière intuitive, par exemple:
pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"
et affiche les résultats sans qu'il soit nécessaire de générer une nouvelle cmd !
Une meilleure alternative au Panneau de configuration est d’utiliser ce programme gratuit de sourceforge appelé Pathenator:
https://sourceforge.net/projects/pathenator/
Cependant, seuls les utilisateurs de systèmes dotés de Dot.Net 4.0 ou supérieur, tels que Windows 7,8 ou 10.
Si vous exécutez la commande cmd
, toutes les variables système de cette fenêtre de commande seront mises à jour.