1) Нужно запустить скрипт, который "загрязняет" переменные. Правильно ли я понимаю что для этого нужно:
- Запускать другой скрипт как cmd /k dirty.cmd (мне нужно ожидать)
- Или внутри dirty.cmd все обрамлять setlocal ... endlocal и тогда можно как call dirty.cmd
?
CMD/BAT - Запуск скрипта из другого не загрязняя переменные
-
Ruzzz
Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные
Конечная/глобальная цель сих действий какова? Опишите первичную задачу.
-
Iska
Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные
Iska,
Сделал я такой файл
Его задача генерировать другой cmd файл для компиляции приложения из консоли с помощью Visual C++.
Из множества настроек компиляции я сделал для себя несколько "типовых" конфигураций.
И выбираю их через параметры для gen_vc.cmd
Генерируется например такой файл в итоге
Так вот, второй файл запускает настройку окружения компилятора Visual C++ и далее соответственно компилирует.
В итоге сборка одного или более приложений да еще и в разных конфигурациях может выглядеть так:
Т.е. генерация make.cmd файлов - один раз
Каждая перекомпиляция - запуск make.cmd
Сборка множества приложений - это вызов нескольких make.cmd
И вот тут проблемы, пока использую cmd /k *.cmd иначе разные make.cmd (запускает настройку окружения компилятора) конфликтуют друг с другом и сборка происходит с ошибкой.
Не знаю, нужно ли было это все расписывать. Ну раз просили подробней.
Так вот я хочу понять, почему setlocal ... endlocal внутри cmd мне не помагает? Приходиться делать для такого cmd команду cmd /k *.cmd?
Сделал я такой файл
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 - Запуск скрипта из другого не загрязняя переменные
Ruzzz, не проще ли просто написать makefile и скармливать его nmake?
-
greg zakharov
Re: CMD/BAT - Запуск скрипта из другого не загрязняя переменные
Ruzzz, спасибо за обстоятельное описание, но это, к сожалению, не помогло понять Вашу мысль, и что именно у Вас не работает. Сделайте простой и наглядный пример.