Je cherche un moyen pratique d'ajouter et / ou de modifier et / ou de supprimer une variable d'environnement de la ligne de commande. En particulier, je me retrouve parfois dans des situations où je dois ajouter quelques variables dans cmd.exe.
Je serais reconnaissant si quelqu'un me montrait un moyen non graphique pour modifier (c'est-à-dire: ajouter un nouveau répertoire) à la %PATH%
variable.
Le changement doit être permanent, pas seulement pour la durée de la cmd
session.
command-line
environment-variables
René Nyffenegger
la source
la source
Réponses:
La méthode Old School de manipuler directement les variables de registre avec la commande reg était rentable. Voici comment procéder:
Jetez cela dans un script d'une ligne appelé apath.bat qui ressemble à ceci:
Ensuite, tout ce que vous devez fournir est le chemin du nouveau répertoire que vous ajoutez lors de l'appel du script et vous êtes composé:
par exemple: apath.bat% addonpath%
Bien que Hinch ait raison. La meilleure façon de le faire si vous utilisez Vista ou supérieur est d'utiliser la commande SETX qui est conçue pour nous permettre de propager des variables d'environnement sans risque de manipuler directement le registre avec la commande reg qui pourrait vous sauver votre machine si vous manipulez suffisamment de variables ENV pour l'utiliser à la volée.
la source
Vous pouvez utiliser setx.
Variable utilisateur:
Variable système:
la source
echo %PATH%
, vous les voyez combinés, comme<system path>;<user path>
. Ainsi, la première commande forcera les éléments actuels du chemin système à apparaître dans le chemin utilisateur (ce qui n'est pas si mal), tandis que la seconde commande fera apparaître les éléments actuels du chemin utilisateur dans le chemin système (ce qui est inacceptable).Vous pouvez utiliser la
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
clé de registre pour pointer vers un fichier de commandes, pour vous permettre d'apporter des modifications semi-permanentes sans plonger dans les boîtes de dialogue des paramètres obscurs.la source
Si vous ne souhaitez pas utiliser l'interface graphique (comme dans le Panneau de configuration, Système, Avancé, Variables d'environnement, PATH), vous pouvez probablement utiliser
REG
pour définirHKCU\Environment\PATH
.%PATH%
REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f
Les
/f
forces écrasent la valeur existante afin que vous n'ayez pas à répondre de manière interactive à la question.Modifier:
%PATH%
doit être cité.Edit: Il convient également de noter que cela nécessite probablement un redémarrage ou une reconnexion avant d'entrer en vigueur. Tout changement dans l'interface graphique prend effet immédiatement (pour les nouvelles
cmd.exe
sessions).Référence: http://support.microsoft.com/kb/104011
Comme indiqué dans la référence, si vous souhaitez écrire du code, vous pouvez envoyer WM_SETTINGCHANGE et cela devrait éviter l'exigence de connexion / déconnexion.
la source
REG QUERY HKCU\Environment /v PATH
.Il est facile de modifier le chemin d'accès dans le processus cmd.exe actuel:
Vous pouvez toujours faire HELP PATH pour obtenir de l'aide sur la commande PATH.
la source
Pour des changements véritablement permanents à l'échelle du système, vous voulez vraiment utiliser le panneau de configuration Système (alias Poste de travail -> Propriétés -> Avancé -> Variables d'environnement, pour WinXP). Les paramètres y affectent l'ensemble de votre système, y compris les programmes GUI dans le shell Explorer.
Si vous n'avez besoin que de ces modifications dans le
cmd.exe
shell, vous pouvez exécuter un fichier de commandes qui les définit chaque fois que vous démarrez une fenêtre cmd.exe. La réponse de Phoshi mentionne leHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
, qui semble être une excellente option - facile à faire de petites modifications et réexécutez à partir de la ligne de commande si vous en avez besoin. Mais cela n'affectera pas les fenêtres GUI ou le shell Explorer.Je suis en fait surpris que Sysinternals ne dispose pas d'un utilitaire capable de le faire. Peut-être qu'un autre des PStools peut le faire?
la source
Beaucoup de façons de le faire. REG ADD est un ou REG IMPORT (en utilisant un fichier .REG exporté à partir d'un autre ordinateur). SETX / M en est un autre. Vous pouvez également le pousser à l'aide des préférences de stratégie de groupe (le moyen le plus simple pour un grand nombre d'ordinateurs)
la source
Une autre pensée non mentionnée ici, créer un script autohotkey qui lancera le panneau de contrôle et l'entrera pour vous. Cela fonctionne bien si vous êtes déjà un utilisateur AHK :-)
https://autohotkey.com/board/topic/63210-modify-system-path-gui/
Qu'en est-il également de la modification de hklm / system / currentcontrolset001 / control / session manager / environment: path key? Mais la même clé se trouve sous hklm / system / currentcontrolset002 et hklm / system / currentcontrolset. Il semble que cela pourrait être correct, par ici: /programming/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install
la source