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

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

Ответы [ 3 ]

268 голосов
/ 26 июля 2011

Как и любая другая переменная окружения, с 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

Внимательно прочитайте документы для1016 * / endlocal, и посмотрите другие ссылки на этом сайте - Функции тоже довольно интересны, а синтаксис хитрый.

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

17 голосов
/ 16 октября 2013

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

setx ENV_VAR_NAME "DESIRED_PATH" /m

Это изменит его навсегда, и да, вы можете перезаписать его другим пакетным скриптом.

14 голосов
/ 03 июля 2017

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

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

не работает, а

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

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

...