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

时间:2016-01-07 18:23:12

标签: go

我已经看到以下命令来设置构建版本

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

但我无法让时间戳部分在Windows上运行!

我使用的是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上尝试过这个吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

* nix系统上的命令正在使用反引号命令替换。 date是POSIX的内置函数,`中的任何内容都被解释为shell命令,并被其值替换。

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

PS C:\users\adsmith> 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