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


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

3 136

3 ответа:

как и любая другая переменная окружения, с 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 и посмотрите на другие ссылки на этом сайте - функции довольно интересно тоже и синтаксис хитрый.

The синтаксис страница должна помочь вам начать работу с основами.

Это верно, но он не изменяет его постоянно, но только для текущей командной строки, Если вы хотите изменить его постоянно, вы должны использовать, например, это:

setx ENV_VAR_NAME "DESIRED_PATH" /m

это изменит его навсегда и да, вы можете заменить его на другой сценарий.

есть важная деталь:

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

не работает, в то время как

set PATH=C:\linutils;C:\wingit\bin;%PATH%

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