![]() |
Запуск скрипта из другого не загрязняя переменные
1) Нужно запустить скрипт, который "загрязняет" переменные. Правильно ли я понимаю что для этого нужно:
- Запускать другой скрипт как cmd /k dirty.cmd (мне нужно ожидать) - Или внутри dirty.cmd все обрамлять setlocal ... endlocal и тогда можно как call dirty.cmd ? |
Конечная/глобальная цель сих действий какова? Опишите первичную задачу.
|
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? |
Ruzzz, не проще ли просто написать makefile и скармливать его nmake?
|
Ruzzz, спасибо за обстоятельное описание, но это, к сожалению, не помогло понять Вашу мысль, и что именно у Вас не работает. Сделайте простой и наглядный пример.
|
Время: 18:56. |
Время: 18:56.
© OSzone.net 2001-