Я пишу установку в Makefile, в котором мне нужно установить PATH env. переменная.
В части окна я нашел следующее:
set
: С помощью set PATH="%PATH%;%CD%"
я могу изменить PATH
внутри рабочей среды. Есть две проблемы с этим:
- Среда является порожденной
cmd.exe
make, которая затрагивает ее переменную и удаляет эффект, как только закрывается
- Даже если бы предыдущая проблема могла быть решена, все равно
cmd.exe
, который вызывает make
, закрылся бы однажды, а измененный PATH
потерян.
setx
: инструмент Microsoft, который может постоянно изменять env. переменные. Согласно самой Microsoft , это единственная опция командной строки, которая делает это. Однако использование setx PATH "%PATH%;%CD%" -m
превращает путь в литерал %PATH%;%CD%
и не заменяет переменные их содержимым!
Обратите внимание, что я звоню make
из cmd.exe
не Cygwin или другим модифицированным Windows-оболочкам, которые действуют больше как Linux. Я хочу сказать, что хотя я могу использовать $(PATH)
в своем make-файле (вместо %PATH%
), я не могу использовать pwd
(вместо %CD%
)
Также обратите внимание, что если в самом cmd я запускаю:
setx PATH "%PATH%;%CD%" -m
работает отлично. Каким-то образом мне нужно заставить make
выполнить эту команду.
У вас есть идеи, как это исправить, или какой у меня есть обходной путь?
P.S. Просто для записи, echo "%PATH%;%CD%"
в Makefile также перекликается с литералом "%PATH%;%CD%"
, а не позволяет cmd.exe обрабатывать его