![如何轻松地将环境变量传递给“Windows 10 上的 Bash”中的 .exe?](https://linux22.com/image/707700/%E5%A6%82%E4%BD%95%E8%BD%BB%E6%9D%BE%E5%9C%B0%E5%B0%86%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%BC%A0%E9%80%92%E7%BB%99%E2%80%9CWindows%2010%20%E4%B8%8A%E7%9A%84%20Bash%E2%80%9D%E4%B8%AD%E7%9A%84%20.exe%EF%BC%9F.png)
我正在寻找一种方法,在从 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"
。