web-dev-qa-db-fra.com

Rafraîchir l'environnement variable

Comment puis-je rafraîchir une coquille Windows CMD après avoir modifié mes variables d'environnement?

c'est-à-dire à Bash, je peux juste faire "Source ~/.CASHRC"

12
Don Ch

Définir et retirer l'environnement principal dans Windows est quelque chose que les personnes BartPE ont passé beaucoup de temps à.

L'environnement principal est stocké dans le registre, mais l'explorateur Shell le lit à son adresse. De là, il est envoyé à chaque session CMD.exe.

L'ensemble affecte uniquement l'environnement CMD. SETX vous permet de modifier l'environnement maître, mais le réglage n'est pas reflété dans l'environnement local.

La consecture de Frank Westlake et 4NT peuvent chercher des entrées de registre, mais aucun commutateur pour l'environnement principal en particulier.

Windows normalement chargée conserve une trace des paramètres au registre, tandis que celui chargé par MINTRIP (IE WinPE) n'est pas. Donc, la définition de registre et de registre de lecture fonctionne dans les deux, mais uniquement des fenêtres de démarrage normalement démarrées verront les paramètres et les transmettre sur un nouveau programme EXE.

1
wendy.krieger

Ceci est maintenant nettement plus facile, pas besoin de redémarrer la coquille:

  1. Ouvrez le menu Démarrer et recherchez RefreshEnv.bat
  2. Courir RefreshEnv.bat

Observez que vos variables d'environnement récemment ajoutées sont disponibles dans toute nouvelle instance Command/PowerShell, vérifiant l'actualisation.

0
Lance McCarthy

cela dépend de l'endroit où vous "définissez" vos variables d'environnement. L'équivalent à votre exemple Bash serait comme ça:

fichier: env.Bat

set FOO=bar

et maintenant vous rafraîchissez-le

% call env.bat

mais je pense que vous l'avez fait via la boîte de dialogue Windows-System-Paramètres (ou quel que soit son nom). Le résultat est que vous avez effectivement changé le registre. Ces paramètres de registre sont mappés dans le processus lorsque vous lancez un nouveau processus.

donc, vous pouvez démarrer un nouveau processus (cmd.exe dans votre cas) OR Vous pouvez lire les touches de registre reflétant les modifications souhaitées. Vous pouvez également écrire un peu .bat/.cmd Script qui obtient l'environnement du registre et change l'environnement actuel Accordlinglingy (si l'humeur me frappe, je le ferai après le déjeuner).

0
akira