exec.Command(“date”) 无法找到日期命令

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": executable file not found in %PATH%


如何让命令起作用?我是否需要设置路径或写出命令的完整路径?


子衿沉夜
浏览 464回答 2
2回答

Cats萌萌

可悲的是,除非您date.exe从某个地方(Cygwin?)获得一个并放入您的%PATH%.我相信,这date是在 Powershell 中内置的。它对你有用,因为你的 shell 正在解释它。你或许可以做到out, err := exec.Command("cmd", "/C", "date").Output()正如这里建议的那样;我不知道,我手边没有 Windows 机器。边注:Get-Command date 显示“术语‘日期’未被识别为 cmdlet 的名称”该短语恰好有两个 Google 结果。其中之一将我引向了这一点,这帮助我解决了这个问题。

扬帆大鱼

由于 date 不是可执行文件,因此在 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go