从windows上的makefile文件中加载环境变量



所以我想创建一个make run命令,以便我可以在本地进行测试。它会在运行之前加载一些env。

有一个win.env文件

set ENV1=val1
set ENV2=val2

lin.env文件

export ENV1=val1
export ENV2=val2

Makefile我有:

run:
ifeq ($(OS),Windows_NT)
. ./win.env && go run .
else
. ./lin.env && go run .
endif

在linux上可以,但是在windows上显示:

'.' is not recognized as an internal or external command,
operable probram or batch file.
make: *** [run] Error 1

如何在运行程序之前加载envars ?

.命令是POSIX shell的一个特性。你没有在Windows上使用POSIX shell,你正在使用Windows cmd.exe。

首先,不能将文件命名为win.env。Windows非常关心文件扩展名,所以你必须将这个文件命名为win.bat或类似的东西。

第二,在Windows的cmd.exe中,你只需要运行脚本;它不像POSIX系统那样启动一个新的命令程序。

run:
ifeq ($(OS),Windows_NT)
win.bat; go run .
else
. ./lin.env && go run .
endif