【问题标题】:Execute the 'cd' command for CMD in Go在 Go 中执行 CMD 的“cd”命令
【发布时间】:2017-05-26 17:14:05
【问题描述】:

我想用Go和exec库去某个路径"c:",运行一个.exe文件。

当我运行我的 Go 代码时,它给了我:

exec: "cd:/": 文件不存在

【问题讨论】:

  • 如果您分享您的代码,将会对其他人有所帮助。

标签: go exec


【解决方案1】:

cd 命令是 shell 的内置命令,无论是 bash、cmd.exe、PowerShell 还是其他命令。您不会执行cd 命令,然后执行您要运行的程序。相反,你想设置CmdDir 你要运行到包含程序的目录:

package main

import (
    "fmt"
    "log"
    "os/exec"
)

func main() {
    cmd := exec.Command("program") // or whatever the program is
    cmd.Dir = "C:/usr/bin"         // or whatever directory it's in
    out, err := cmd.Output()
    if err != nil {
        log.Fatal(err)
    } else {
        fmt.Printf("%s", out);
    }
}

请参阅Cmd documentation 了解更多信息。或者,您可以在运行程序之前使用os/Chdir 更改工作目录。

【讨论】:

    【解决方案2】:

    Cmd对象中指定运行命令的初始工作目录:

    cmd.Dir = "C:\\"
    

    有关更多详细信息,请参阅documentation on the Cmd 结构。

    【讨论】:

      【解决方案3】:

      根据命令是否需要在目录的“根”下操作,可以使用os.Chdir(dir)更改Go程序目录。所有后续命令和路径都将与提供给os.Chdirdir 的值相关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多