Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT - Странное поведение (CALL IF)

Ответить
Настройки темы
CMD/BAT - [решено] BAT - Странное поведение (CALL IF)

Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть папки: bin;exec;include

Есть файлы:
exec\shell.bat с содержимым:
Код: Выделить весь код
call ..\bin\set_env.bat
cmd /k cd %~dp0
bin\set_env.bat (вариант 1):
Код: Выделить весь код
cd ..\include
SET INCLUDEPATH=%CD%\
SET ENV=true
echo set var
bin\set_env.bat (вариант 2):
Код: Выделить весь код
if "%ENV%"=="" (
  cd ..\include
  SET INCLUDEPATH=%CD%\
  SET ENV=true
  echo set var
)
При запуске shell.bat:
1 вариант: INCLUDEPATH = c:\test\include\ (как и требуется)
2 вариант: INCLUDEPATH = c:\test\exec\

Вопрос: почему?

Отправлено: 05:10, 28-02-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Clinik:
Вопрос: почему? »
Потому что значение переменной окружения CD вычисляется в момент входа в операторные скобки. Используйте двойное раскрытие:
Код: Выделить весь код
call SET INCLUDEPATH=%%CD%%\
Можно использовать и отложенное раскрытие переменных окружения, но это потребует большего кода.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:38, 28-02-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT - Странное поведение (CALL IF)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Странное поведение ноута WapeR_PauL Непонятные проблемы с Железом 5 20-04-2015 11:04
Странное поведение bios roman.lipovka@fb Материнские платы и память 5 28-03-2013 00:21
Разное - Странное поведение ActiveX warol Microsoft Windows 7 11 07-03-2011 12:24
Странное поведение Haos64 Непонятные проблемы с Железом 16 04-03-2010 16:06
Странное поведение IE 7 Ser6720 Хочу все знать 23 10-04-2007 22:03




 
Переход