我正在寻找一种方法,在从 Windows 10 终端上的 Bash 调用时轻松地将环境变量传递给 .exe。似乎
TEST=somevalue example.exe
不起作用。
答案1
上述命令不起作用的原因是因为它是Linux您正在设置的环境变量。在“普通” Windows 中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"
。