Назад | Перейти на главную страницу

Как легко передать переменную среды в .exe в «Bash в Windows 10»?

Я ищу способ легко передать переменную среды в .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".