Définition des variables d'environnement pour le système par le biais d'un fichier de commandes
Je suis à l'aide d'un .bat
fichier afin d'automatiser certaines tâches pour mon moteur (une fois qu'il est fraîchement cloné à partir du référentiel). L'une des tâches est de définir les variables d'environnement. Je suis l'aide de la SETX
de commande et de définir le chemin d'accès de la variable nommée être %CD%
, c'est à dire le répertoire dans lequel le programme d'installation a été exécuté.
Cela fonctionne bien, même si l'utilisateur a besoin de log-off/log-on
qui peut être gênant. Cette log-off/log-on
cycle n'est pas nécessaire si la variable est définie comme la variable du système (je ne suis pas sûr pourquoi, mais de redémarrer Visual Studio n'a aucun effet sur les variables d'environnement utilisateur... qui est, il détecte pas les changements, mais il permet de détecter des changements dans les variables système). J'ai donc procédé à utiliser le -m
de commande. Malheureusement, cela nécessite que le fichier batch a des privilèges d'administrateur. Pas de problème, j'ai couru le fichier de commandes en tant qu'administrateur. Eh bien, maintenant j'ai rencontré un problème. Le répertoire courant variable, %CD%
changé depuis le répertoire du programme d'installation est exécuté à partir de, à C:\Windows\System32
.
Donc maintenant sur la question. Comment puis-je définir des variables d'environnement du système par l'intermédiaire d'un fichier de commandes qui utilise %CD%
sans défaut C:\Windows\System32
. Juste une remarque, pas mal de gens utilisent le programme d'installation et je voudrais que ce processus aussi indolore et les erreurs que possible. Ce qui signifie, en aucune entrée de manuel est préféré. Actuellement, si elle est exécutée sans privilèges d'administrateur et sans -m
, la seule chose nécessaire est un log-off/log-on
cycle. Sinon, tout est automatisé.
OriginalL'auteur Samaursa | 2011-07-10
Vous devez vous connecter pour publier un commentaire.
%0
est le nom de votre fichier de commandes. Vous pouvez utiliser %~dp0 avecpushd
pour changer le répertoire où votre fichier batch est situé et de travailler votre chemin vers le répertoire à partir de là. Donc, la structure générale d'un tel fichier de commandes est :Comme pour votre Visual Studio problème... en mode Utilisateur les variables d'environnement sont disponibles pour chaque processus a commencé après la variable d'environnement a été définie. Mais pour une raison quelconque, le processus actuel n'est pas le recevoir. Mais l'Explorer.exe (qui s'occupe que du menu démarrer et de la commande exécuter semble chercher une nouvelle copie de l'environnement à chaque fois qu'il en a besoin.
Un processus qui a commencé de cette façon sera le nouvel environnement, alors qu'un processus lancé depuis la ligne de commande va hériter de l'ancien environnement, sans que les nouvelles variables définies par
setx
.Vous pouvez atténuer ce problème en modifiant votre fichier de commandes pour les deux
set
etsetx
les variables.Voici un code pour obtenir vous avez commencé. Il
Voici le code, HTH
OriginalL'auteur ixe013
considérer, vous souhaitez configurer les fourmis à l'aide de la batte de script, procédez de la manière suivante:
OriginalL'auteur Ashwin Hegde