Подтвердить что ты не робот

Командная строка. Как добавить заданный путь только для выполнения этого командного файла?

В принципе, я знаю, что могу пройти через панель управления и изменить переменную пути. Но, мне интересно, есть ли способ для пакетного программирования включить временный путь? Таким образом, он используется только во время выполнения пакетного файла. Я не хочу, чтобы люди входили и изменяли свои переменные пути только для использования моего командного файла.

4b9b3361

Ответ 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%

работает. Разница заключается в кавычках!