En gros, je sais que je peux passer par mon panneau de contrôle et modifier la variable de chemin. Mais, je me demande s'il existe un moyen de via la programmation par lots avoir un chemin temporaire inclus? De cette façon, il n'est utilisé que pendant l'exécution de ce fichier de commandes. Je ne veux pas que les gens entrent et modifient leurs variables de chemin juste pour utiliser mon fichier de commandes.
la source
setlocal
à votre fichier de commandes, le chemin n'est visible que dans le fichierSET
c'est vraiment quelque chose que vous devez savoir et comprendre avant de faire des scripts.SETLOCAL
cela, tout au plus ne sera que pour cette session d'invite de commande individuelle - si vous faites cela à partir de plus d'un fichier de commandes et que vous utilisezEXIT /B %N%
, vousSETLOCAL
allez simplement vider vos modifications lorsque le script se termine. : - /Il y a un détail important:
ne fonctionne pas, alors que
travaux. La différence, ce sont les citations!
UPD voir aussi le commentaire de venimus
la source
SET "PATH=...%PATH%"
sinon les espaces existant dans le chemin entraîneront des erreurs ou un mauvais comportement. Les mettre entre guillemets comme celui-ci ne les inclura pas mais définira correctement la variable. La même chose fonctionne pour toute autre variable env.C'est vrai, mais cela ne le change pas de façon permanente, mais juste pour l'invite de commande actuelle, si vous voulez le changer de manière permanente, vous devez utiliser par exemple ceci:
Cela le changera définitivement et oui, vous pouvez l'écraser par un autre script batch.
la source
/m
besoin d'être aprèssetx
?/m
à la fin, le aDESIRED_PATH
été ajouté avec / m à la fin pour l'utilisateur actuel uniquement.echo %path%
et vous obtiendrez le chemin chargé actuel. Vous devez distinguer les variables d'environnement utilisateur et système les unes des autres. Ensuite, vous pouvez les appliquer manuellement au bon endroit.