Ajouter un répertoire à la Variable D'environnement PATH dans Windows
dans les systèmes D'exploitation Windows NT, j'ai essayé d'ajouter ce répertoire à mon système PATH
variable d'environnement:
C:xamppphp
donc j'ai ajouté ce répertoire par" mon ordinateur " > "Propriétés" > "Avancé" > "Variables D'environnement" > "chemin". Je l'ai enregistré, mais quand j'ai tapé:
> path
sur ma console, il n'y a aucun ajout .C:xamppphp "répertoire
> PATH=D:Program
> FilesAutodeskMaya2008bin;C:Ruby192bin;C:WINDOWSsystem32;C
> :WINDOWS;C:WINDOWSSystem32Wbem;C:PROGRA~1DISKEE~2DISKEE~1;c:Program
> Fil esMicrosoft SQL ServerToolsbinn;C:Program
> FilesQuickTimeQTSystem;D:P rogram FilesTortoiseSVNbin;D:Program
> FilesBazaar;C:Program FilesAndroidan droid-sdktools;D:Program
> FilesMicrosoft Visual StudioCommonToolsWinNT;D:P rogram
> FilesMicrosoft Visual StudioCommonMSDev98Bin;D:Program
> FilesMicroso ft Visual StudioCommonTools;D:Program FilesMicrosoft
> Visual StudioVC98bin
j'ai deux questions:
-
pourquoi cela s'est-il produit? Il ya quelque chose que j'ai fait de mal?
-
Comment puis-je ajouter des répertoires dans ma variable
PATH
en utilisant la console ou par programmation (via un fichier batch)?
14 réponses
ceci ne modifie que le registre. Un processus n'utilisera pas ces valeurs jusqu'à ce qu'il soit lancé après ce changement et n'hérite pas de l'environnement de son parent.
vous n'avez pas spécifié comment vous avez démarré la session console. La meilleure façon d'y parvenir est de vous déconnecter et vous connecter à nouveau.
- ouvrez la fenêtre de la console après avoir modifié le chemin du système via le panneau de configuration ou les paramètres du système.
ou
-
set PATH=%PATH%;C:\xampp\php
dans la fenêtre de commande vous avez ouvert.
en le décomposant:
set PATH=%PATH%; -- takes the current path and sets PATH to it. C:\xampp\php -- Adds this directory to the path, because of 'set PATH' this is added to the path
Attention: Ne sautez pas la création d'un back-up avant d'utiliser cette méthode
vous pouvez perdre des données dans votre %PATH%
, ou ajouter du contenu non pertinent fusionné à partir des variables du système
en d'autres termes, ne copiez pas/collez ceci aveuglément. À utiliser avec prudence.
dans Windows 7 et Windows 8, nous pouvons de façon permanente chemin à partir de la ligne de commande en utilisant la commande setx
. Pour ajouter git à "Chemin":
setx path "%path%;C:\Program Files (x86)\Git\bin\"
notez que cette commande peut tronquer le chemin que vous passez à 1024 caractères, perdant tout au-delà de cela. En général, assurez-vous d'utiliser cmd.exe
, et pas command.com
. Les deux fournissent la ligne de commande. cmd.exe
est plus récent, et il a moins de restrictions. command.com
est plus ancien; il a des limites comme la taille du chemin.
dans la famille Windows 8 (8 & 8.1) vous devez exécuter L'invite de commande avec les privilèges d'administrateur.
Edit: Comme , a commenté par @FF_Dev
en raison de l'utilisation de la variable
%PATH%
, cette commande va fusionner les variables d'environnement du système avec celles de l'utilisateur.
vous n'avez pas besoin de commande set
ou setx
, ouvrez simplement le terminal et tapez:
PATH
indique la valeur courante de la variable PATH. Maintenant, vous voulez ajouter un annuaire? Tapez simplement:
PATH %PATH%;C:\xampp\php
si pour une raison quelconque vous voulez effacer la variable PATH (pas de chemins du tout ou supprimer tous les chemins), tapez:
PATH ;
mise à Jour
Comme Danial Wilson l'a noté dans le commentaire ci-dessous, il ne définit le chemin que dans la session courante. Pour définir le chemin en permanence utilisez setx
mais soyez conscient, bien que cela fixe le chemin en permanence mais pas dans la session en cours, donc vous devez démarrer une nouvelle ligne de commande pour voir les changements, plus d'informations ici .
pour vérifier l'existence ou la valeur d'une variable environnementale, utilisez ECHO commnad:
echo %YOUR_ENV_VARIABLE%
en cette ère de PowerShell, je voudrais éditer PATH comme ceci:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")
pour définir la variable pour tous les utilisateurs, sur toute la machine, la dernière ligne doit ressembler à:
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
dans un script PowerShell, vous pourriez vouloir vérifier la présence de votre C:\xampp\php
avant d'ajouter à PATH (dans le cas où il a été précédemment ajouté). Vous pouvez l'envelopper dans un if
conditionnelle.
donc, tout est réuni:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
la Fin de la partie, mais très pratique si vous êtes déjà dans le répertoire que vous souhaitez ajouter à la TRAJECTOIRE.
set PATH=%PATH%;%CD%
edit: comme par commentaire - fonctionne avec windows standard cmd, mais pas dans powershell.
pour powershell l'équivalent %CD%
est [System.Environment]::CurrentDirectory
Safer SETX
hochez la tête à tous les commentaires sur le l'initiale de @Nafscript SETX
réponse .
-
SETX
par défaut mettra à jour votre chemin utilisateur . -
SETX ... /M
mettra à jour votre system path. -
%PATH%
contient le chemin du système avec le chemin de l'utilisateur ajouté
mises en garde
- la Sauvegarde de vos
PATH
-SETX
va tronquer votre jonque de plus de 1 024 caractères - N'appelez pas
SETX %PATH%;xxx
- ajoute le chemin du système dans le chemin de l'utilisateur - N'appelez pas
SETX %PATH%;xxx /M
- ajoute le chemin de l'utilisateur dans le chemin du système - L'utilisation Excessive de fichiers par lots peut causer la cécité 1
Le ss64 SETX page a quelques très bons exemples. Il est important de savoir 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
Usage instructions
ajouter à L'utilisateur 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
ajouter au système PATH
append_system_path.cmd
. doit être exécuté en tant qu'administrateur.
(c'est fondamentalement le même sauf avec un Key
et le SETX /M
modificateur)
@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
Alternatives
Enfin il y a potentiellement une version améliorée appelée SETENV recommandée par la page de SETX ss64 qui se divise en définissant les variables d'environnement utilisateur ou système.
1. Pas strictement vrai
que se passe-t-il si vous tapez mal le chemin en utilisant setx? Le meilleur moyen est tout simplement à travers les fenêtres U. I. Panneau De Contrôle- > Tous Les Éléments Du Panneau De Contrôle->Système->Décantation Avancée Du Système - > Variables D'Environnement
Faites défiler vers le bas Jusqu'au chemin et sélectionnez Modifier. Vous pouvez également le copier et le coller dans votre éditeur préféré de sorte que vous pouvez voir le chemin entier et plus facilement l'éditer.
- les changements de ligne de commande ne seront pas permanents et seront perdus lorsque la console sera fermée.
- le chemin fonctionne comme le premier arrivé, premier servi.
- vous pouvez vouloir annuler d'autres exécutables déjà inclus. Par exemple, si vous avez déjà une autre version sur votre chemin et que vous voulez ajouter une version différente sans faire de changement permanent sur le chemin, vous devriez placer le répertoire Au début de la commande.
pour remplacer les exécutables déjà inclus;
set PATH=C:\xampp\php;%PATH%;
mis à part toutes les réponses, si vous voulez un outil GUI nice pour modifier vos variables d'environnement windows, vous pouvez utiliser éditeur D'environnement rapide
essayez! sa sécurité d'utilisation et génial!
en ce qui concerne le point 2 j'utilise un simple fichier batch 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:
c:\>mybatchfile
-- here all env. are available
c:\>php file.php
vous pouvez vérifier plus de détails sur cette approche simple ici .
vérifier les suggestions ci-dessus sur Windows 10 LTSB, et avec un aperçu sur les contours" aide " (qui peut être vu en tapant commande/?'sur le cmd), m'a amené au conclusion que la commande PATH modifie les valeurs de la variable D'environnement système Path uniquement pour la session en cours, mais après 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'autre part, en utilisant la commande SETX avec les privilèges sont beaucoup plus puissants, ils modifient ces valeurs pour de bon (ou au moins jusqu'à la prochaine fois que cette commande est utilisée ou jusqu'à la prochaine fois que ces valeurs sont manipulées manuellement GUI... ).
mais par souci de clarté j'ai pensé que partager ici le meilleur usage de syntaxe SETX qui a fonctionné pour moi pourrait aider quelqu'un un un jour:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
où tout signe égal ' = ' devrait être évité, et ne vous inquiétez pas des espaces! il n'est pas nécessaire d'insérer n'importe quel plus de guillemets pour un chemin qui contient des espaces à l'intérieur - le split signe ';' faire le travail.
le mot-clé PATH qui suit le SETX définit quel ensemble de valeurs doit être modifié parmi les Variables D'environnement système valeurs possibles, et le %PATH% (le chemin de mot entouré par le signe de pourcentage) à l'intérieur des guillemets, dit au système D'exploitation de laisser les valeurs de chemin existantes telles qu'elles sont et d'ajouter le chemin suivant (celui qui suit le signe de division';') à l'existant valeur.
HTH
une meilleure alternative au panneau de contrôle est d'utiliser ce programme gratuit de sourceforge appelé Pathenator:
https://sourceforge.net/projects/pathenator /
cependant, il ne les travailleurs pour le système qui a Dot.Net 4.0 ou plus comme windows 7,8, ou 10.
dans une invite de commande, vous dites à Cmd d'utiliser la ligne de commande de L'Explorateur en la préfacant avec start
.
Donc start Yourbatchname
.
Note vous devez vous enregistrer comme si son nom était batchfile.exe
.
les programmes et les documents peuvent être ajoutés au registre, de sorte que taper leur nom sans leur chemin dans la boîte de dialogue Démarrer - Exécuter ou un raccourci permet à Windows de les trouver.
il s'agit d'un fichier reg Générique. Copie les lignes ci-dessous vers un nouveau document texte et enregistrez-le comme anyname.reg. Modifier avec vos programmes ou documents.
dans paths utilise \ pour séparer les noms de dossiers dans key paths car regedit utilise un seul \ pour séparer ses noms de clés. Tous les fichiers reg commencent par REGEDIT4. Un point-virgule transforme une ligne en commentaire. Le symbole @ moyens pour affecter la valeur de la clé plutôt qu'une valeur nommée.
le fichier n'a pas à exister. Cela peut être utilisé pour passer le mot.exe pour ouvrir Winword.EXE.
tapant start batchfile
va commencer 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é de path dans une autre réponse. Voir aussi doskey /?
pour les macros cmd (elles ne fonctionnent qu'en tapant).
vous pouvez lancer des commandes de démarrage pour CMD. De Windows Recource Kit Référence Technique
AutoRun
HKCU\Software\Microsoft\Command Processor
Data type Range Default value
REG_SZ list of commands There is no default value for this entry.
Description
contient des commandes qui sont exécutées chaque fois que vous démarrez Cmd.EXE.