Создание сеанса VAR в DOS? - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть сценарий, он добавляет путь к пути

 path=%PATH%;C:\dev\external\stuff\bin

После запуска моего сценария bat несколько раз я получаю сообщение об ошибке, потому что путь PATH слишком длинный (потому что я добавил тот же путь Xколичество раз).

Поэтому я попытался myvar="dontdoitagain" и написал заявление if.Однако он всегда пуст, кажется, он очищается, когда заканчивается файл bat (в отличие от того, когда я снова открываю приглашение, что я и делаю, когда получаю эту ошибку).

Как мне получить эту переменную вжить в области видимости сеанса, а не области файла летучей мыши?

1 Ответ

1 голос
/ 08 февраля 2011
if not defined EXTENDED_PATH (
    set PATH=%PATH%;my_additions
    set EXTENDED_PATH=1
)

должно работать, на самом деле.Если вы не используете setlocal, который ограничивает время жизни переменных, все созданные переменные остаются после выхода из пакета.

Примечание. Если вы на самом деле используете DOS, это не будет работать, поскольку оно полагается на функциональность, введенную в cmdс Windows NT 4 примерно 15 лет назад.В этом случае вам может понадобиться следующее:

if %EXTENDED_PATH%==1 goto skip
set PATH=%PATH%;my_additions
set EXTENDED_PATH=1
:skip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...