Я ищу способ легко передать переменную среды в .exe при вызове из Bash в терминале Windows 10. Кажется, что
TEST=somevalue example.exe
не работает.
Причина, по которой приведенная выше команда не работает, заключается в том, что это Linux переменная среды, которую вы устанавливаете. В "нормальной" винде cmd.exe
, вы могли бы начать с set TEST=somevalue
но это не работает в bash.exe
, переменная среды Linux не используется совместно с исполняемым файлом Windows (вызов set
фактически к команде set в bash
сам).
Итак, если вы ищете обходной путь, я могу придумать двухэтапный способ решения этой проблемы. Сначала вызовите команду в контексте cmd.exe
вместо того bash.exe
, что можно сделать с /C
параметр. Во-вторых, вам действительно нужно иметь возможность сделать это за один раз в cmd.exe
, который также требует обходного пути, потому что выполнение set FOO="bar" & echo %FOO%
не работает в cmd.exe
(попытайся). Если вы добавите echo
команда с call
оно делает. Это приводит к следующей полной команде:
cmd.exe /C "set FOO=\"bar\" & call echo %FOO%"
Вы увидите, что это приводит к выводу "bar"
.