【发布时间】:2017-05-26 17:14:05
【问题描述】:
我想用Go和exec库去某个路径"c:",运行一个.exe文件。
当我运行我的 Go 代码时,它给了我:
exec: "cd:/": 文件不存在
【问题讨论】:
-
如果您分享您的代码,将会对其他人有所帮助。
我想用Go和exec库去某个路径"c:",运行一个.exe文件。
当我运行我的 Go 代码时,它给了我:
exec: "cd:/": 文件不存在
【问题讨论】:
cd 命令是 shell 的内置命令,无论是 bash、cmd.exe、PowerShell 还是其他命令。您不会执行cd 命令,然后执行您要运行的程序。相反,你想设置Cmd 的Dir 你要运行到包含程序的目录:
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 更改工作目录。
【讨论】:
【讨论】:
根据命令是否需要在目录的“根”下操作,可以使用os.Chdir(dir)更改Go程序目录。所有后续命令和路径都将与提供给os.Chdir 的dir 的值相关。
【讨论】: