为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
子衿沉夜 2021-07-03 15:05:35
package mainimport (    "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%如何让命令起作用?我是否需要设置路径或写出命令的完整路径?
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

可悲的是,除非您date.exe从某个地方(Cygwin?)获得一个并放入您的%PATH%.

我相信,这date是在 Powershell 中内置的。它对你有用,因为你的 shell 正在解释它。

你或许可以做到

out, err := exec.Command("cmd", "/C", "date").Output()

正如这里建议的那样;我不知道,我手边没有 Windows 机器。


边注:

Get-Command date 显示“术语‘日期’未被识别为 cmdlet 的名称”

该短语恰好有两个 Google 结果。其中之一将我引向了这一点,这帮助我解决了这个问题。


查看完整回答
反对 回复 2021-07-05
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

由于 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


查看完整回答
反对 回复 2021-07-05
  • 2 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信