En gros, je sais que je peux passer par mon panneau de configuration et modifier la variable de chemin. Mais, je me demande s’il existe un moyen de programmer par lots un chemin temporaire inclus? De cette façon, il n’est utilisé que pendant l’exécution du fichier de commandes. Je ne veux pas que les gens entrent et modifient leurs variables de chemin simplement pour utiliser mon fichier de commandes.
Comme toute autre variable d'environnement, avec SET
:
SET PATH=%PATH%;c:\whatever\else
Si vous voulez avoir un petit contrôle de sécurité intégré en premier, vérifiez si le nouveau chemin existe en premier:
IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else
Si vous souhaitez que cela soit local pour ce fichier de commandes, utilisez setlocal
:
setlocal
set PATH=...
set OTHERTHING=...
@REM Rest of your script
Lisez attentivement la documentation pour setlocal
/endlocal
et examinez les autres références de ce site - Fonctions est également très intéressant et la syntaxe est délicate.
La page Syntaxe devrait vous aider à démarrer avec les bases.
C'est vrai, mais cela ne le change pas en permanence, mais juste pour l'invite de commande en cours, si vous voulez le changer en permanence, vous devez utiliser par exemple ceci:
setx ENV_VAR_NAME "DESIRED_PATH" /m
Cela le changera de façon permanente et oui, vous pourrez le remplacer par un autre script batch.
Il y a un détail important:
set PATH="C:\linutils;C:\wingit\bin;%PATH%"
ne fonctionne pas, alors que
set PATH=C:\linutils;C:\wingit\bin;%PATH%
travaux. La différence est les citations!