В принципе, я знаю, что могу пройти через панель управления и изменить переменную пути. Но, мне интересно, есть ли способ для пакетного программирования включить временный путь? Таким образом, он используется только во время выполнения пакетного файла. Я не хочу, чтобы люди входили и изменяли свои переменные пути только для использования моего командного файла.
Командная строка. Как добавить заданный путь только для выполнения этого командного файла?
Ответ 1
Как и любая другая переменная среды, SET
:
SET PATH=%PATH%;c:\whatever\else
Если вы хотите сначала создать небольшую проверку безопасности, сначала проверьте, существует ли новый путь:
IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else
Если вы хотите, чтобы это было локально для этого командного файла, используйте setlocal
:
setlocal
set PATH=...
set OTHERTHING=...
@REM Rest of your script
Внимательно прочитайте документы для setlocal
/endlocal
и просмотрите другие ссылки на этом сайте - Functions тоже довольно интересно синтаксис сложный.
На странице Syntax вы должны начать с основ.
Ответ 2
Правильно, но это не изменяет его навсегда, но только для текущей командной строки, если вы хотите изменить его навсегда, вам нужно использовать, например, следующее:
setx ENV_VAR_NAME "DESIRED_PATH" /m
Это изменит его навсегда и да, вы можете перезаписать его другой версией script.
Ответ 3
Существует важная деталь:
set PATH="C:\linutils;C:\wingit\bin;%PATH%"
не работает, а
set PATH=C:\linutils;C:\wingit\bin;%PATH%
работает. Разница заключается в кавычках!