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
我想创建一些批处理文件来为不同的操作系统构建一个 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