Set 未在批处理文件中设置环境变量

Set is not setting environment variables in a batch file

我想创建一些批处理文件来为不同的操作系统构建一个 go 程序。在 windows 命令行中,当我将环境变量指定为

$Env:GOOS = "linux"; $Env:GOARCH = "amd64"

然后一切正常,我可以为 Linux 构建一个 go 程序。然而,当我把它变成批处理文件时:

set GOOS linux
set GOARCH amd64
go build . 

我没有收到任何错误,但我发现环境变量不影响构建过程。我尝试将 set 关键字更改为 setx,但同样无效。然后我决定将行 $Env:GOOS = "linux"; $Env:GOARCH = "amd64" 准确地复制到批处理文件中,我收到一条错误消息:

Environment variable Env:GOOS windows not defined
Environment variable Env:GOARCH amd64 not defined

将这些环境变量添加到批处理文件中的正确方法是什么?

您必须在 GOOS 和平台名称之间放置一个等号,例如:

为 Windows 构建目标 32 位使用:

set GOOS=windows
set GOARCH=386
go build -o .\build\windows.exe

要为 Linux 构建目标 x64,请使用:

set GOOS=linux
set GOARCH=amd64
go build -o .\build\linux