package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
out, err := exec.Command("date").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
}
这是执行系统命令的文档中的代码示例。 http://golang.org/pkg/os/exec/#example_Cmd_Output即使在文档站点上,示例执行框也不会运行并且具有相同的错误: 2009/11/10 23:00:00 exec:“date”:$ PATH中找不到可执行文件
在Windows上,我得到: exec:“date”:%PATH%
中找不到可执行文件如何让命令工作?我是否需要设置路径或写出命令的完整路径?
答案 0 :(得分:4)
可悲的是,除非你从某处获得date.exe
(Cygwin?)并将其放入%PATH%
,否则这个例子对你不起作用。
我相信,正在发生的事情是date
是Powershell内置的。它适用于你,因为你的shell正在解释它。
你可以做到
out, err := exec.Command("cmd", "/C", "date").Output()
建议here;我不知道,我没有方便的Windows机器。
旁注:
Get-Command日期显示“术语'日期'未被识别为cmdlet的名称”
该短语恰好有两个Google结果。其中一个引导我this,这帮助我解决了这个问题。
答案 1 :(得分:2)
在Windows上,因为日期不是可执行文件,所以我将代码更改为如下运行:
out, err := exec.Command("cmd.exe", " /c date /t").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
输出:
The date is Fri 25/10/2013