CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Ответить
Аватара пользователя
Ruzzz

CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Сообщение Ruzzz »

1) Нужно запустить скрипт, который "загрязняет" переменные. Правильно ли я понимаю что для этого нужно:

- Запускать другой скрипт как cmd /k dirty.cmd (мне нужно ожидать)

- Или внутри dirty.cmd все обрамлять setlocal ... endlocal и тогда можно как call dirty.cmd

?
Аватара пользователя
Ruzzz

Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Сообщение Ruzzz »

Конечная/глобальная цель сих действий какова? Опишите первичную задачу.
Аватара пользователя
Iska

Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Сообщение Iska »

Iska,

Сделал я такой файл
https://github.com/Ruzzz/OneFileTool...cmd/gen_vc.cmd


Его задача генерировать другой cmd файл для компиляции приложения из консоли с помощью Visual C++.

Из множества настроек компиляции я сделал для себя несколько "типовых" конфигураций.

И выбираю их через параметры для gen_vc.cmd

Генерируется например такой файл в итоге
https://github.com/Ruzzz/OneFileTool.../zrun_make.cmd




Так вот, второй файл запускает настройку окружения компилятора Visual C++ и далее соответственно компилирует.

В итоге сборка одного или более приложений да еще и в разных конфигурациях может выглядеть так:
https://github.com/Ruzzz/OneFileTool...build/zrun.cmd




Т.е. генерация make.cmd файлов - один раз

Каждая перекомпиляция - запуск make.cmd

Сборка множества приложений - это вызов нескольких make.cmd

И вот тут проблемы, пока использую cmd /k *.cmd иначе разные make.cmd (запускает настройку окружения компилятора) конфликтуют друг с другом и сборка происходит с ошибкой.



Не знаю, нужно ли было это все расписывать. Ну раз просили подробней.

Так вот я хочу понять, почему setlocal ... endlocal внутри cmd мне не помагает? Приходиться делать для такого cmd команду cmd /k *.cmd?
Аватара пользователя
greg zakharov

Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Сообщение greg zakharov »

Ruzzz, не проще ли просто написать makefile и скармливать его nmake?
Аватара пользователя
greg zakharov

Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные

Сообщение greg zakharov »

Ruzzz, спасибо за обстоятельное описание, но это, к сожалению, не помогло понять Вашу мысль, и что именно у Вас не работает. Сделайте простой и наглядный пример.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»