По сути, я знаю, что могу пройти через панель управления и изменить переменную пути. Но мне интересно, есть ли способ через пакетное программирование включить временный путь? Таким образом, он используется только во время выполнения этого пакетного файла. Я не хочу, чтобы люди заходили и изменяли свои переменные пути только для того, чтобы использовать мой командный файл.
187
setlocal
в свой пакетный файл, путь будет виден только в файлеSET
это действительно то, что вы должны знать и понимать, прежде чем выполнять какие-либо сценарии.SETLOCAL
этого, в большинстве случаев, это будет только для этого отдельного сеанса командной строки - если вы делаете это из более чем одного пакетного файла и используетеEXIT /B %N%
, тогда,SETLOCAL
в основном, вы просто сбросите свои изменения при выходе из сценария. : - /Есть важная деталь:
не работает, пока
работает. Разница в кавычках!
UPD также см. Комментарий от Venimus
источник
SET "PATH=...%PATH%"
пробелы, существующие в пути, что приведет к ошибкам или неправильному поведению. Заключение в такие кавычки не будет включать их, но будет правильно устанавливать переменную. То же самое работает для любой другой переменной env.Это верно, но это не меняет это постоянно, но только для текущей командной строки, если вы хотите изменить это постоянно, вы должны использовать, например, это:
Это изменит его навсегда, и да, вы можете перезаписать его другим пакетным скриптом.
источник
/m
должно быть послеsetx
?/m
в конце,DESIRED_PATH
был добавлен с / m в конце только для текущего пользователя.echo %path%
и вы получите текущий загруженный путь. Вам необходимо отличать переменные среды пользователя и системы друг от друга. Затем вы можете вручную применить их в нужном месте.