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:

  1. pourquoi cela s'est-il produit? Il ya quelque chose que j'ai fait de mal?

  2. Comment puis-je ajouter des répertoires dans ma variable PATH en utilisant la console ou par programmation (via un fichier batch)?

403
demandé sur skr 2012-03-03 16:58:55

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.

117
répondu Hans Passant 2012-03-03 13:23:41
  • 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
    
790
répondu JimR 2016-01-03 23:25:21

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.

152
répondu Nafscript 2017-06-27 10:10:01

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%
50
répondu zar 2016-09-15 15:46:18

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")
}
28
répondu Ifedi Okonkwo 2016-07-01 14:48:10

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

23
répondu nclord 2016-04-19 13:55:27

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

  1. la Sauvegarde de vos PATH - SETX va tronquer votre jonque de plus de 1 024 caractères
  2. N'appelez pas SETX %PATH%;xxx - ajoute le chemin du système dans le chemin de l'utilisateur
  3. N'appelez pas SETX %PATH%;xxx /M - ajoute le chemin de l'utilisateur dans le chemin du système
  4. 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

20
répondu icc97 2017-05-23 11:47:30

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.

17
répondu Thomas Fonseca 2017-02-03 22:52:27
  • 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%;

3
répondu hevi 2016-09-06 14:37:53

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!

http://www.rapidee.com/en/

2
répondu Mp de la Vega 2016-02-17 10:21:02

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 .

1
répondu Grzegorz Gajos 2015-10-30 14:22:06

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

1
répondu such_ke_nasdeeq 2016-11-22 20:34:43

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.

1
répondu Bill Moore 2017-08-28 01:24:33

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.

0
répondu 2016-12-21 01:08:47