Go Build标记-在Windows上获取时间戳



我看到了以下设置构建版本的命令

go build -ldflags "-X main.minversion `date -u +.%Y%m%d%.H%M%S`" service.go

但是我无法让时间戳部分在Windows上工作!

我正在使用go 1.5和以下论点。。。

build -i -ldflags "-X main.SERVER_NAME=MFFP -X main.VERSION=1.0.0 -X main.BUILD_DATE=`date -u +.%Y%m%d%.H%M%S`"

错误与日期部分有关

此错误系统是否相关?有人在Windows上尝试过吗?

谢谢!

*nix系统上的命令使用backtick命令替换。date是POSIX上的内置命令,`s中的任何内容都被解释为shell命令,并由其值替换。

cmd.exe根本不在backticks中进行命令替换。使用for /F delims=""(也就是Windows shell中最强大的命令)有一些方法可以完成同样的事情,但它很麻烦。也许可以使用powershell,它支持$(command)语法?

PS C:usersadsmith> go build -i -ldflags "-X main.SERVER_NAME=MFFP -X main.VERSION=1.0.0 -X main.BUILD_DATE=$(Get-Date -uformat .%Y%m%d%.H%M%S)"

您可能需要处理这种格式——我不确定在POSIX上应该是什么样子。该输出:

.20160107.111641
// Jan 7th 2016, 11:16:41

最新更新