您的当前位置:首页正文

golang exec包在windows下的使用

2024-11-27 来源:个人技术集锦

这两天做项目的时候发现exec包在windows和linux下的使用不一样。

比如:

out, err := exec.Command("dir").Output()
if err != nil {
   log.Fatal(err)
}
fmt.Println(string(out))

会报exec: "dir": executable file not found in %PATH%

当你把可执行文件放到GOPATH里时

cmd := exec.Command("main.exe")

var out, stderr bytes.Buffer
cmd.Stderr = &stderr
cmd.Stdout = &out

stdinPipe, err := cmd.StdinPipe()
if err != nil {
   log.Fatalln(err)
}
io.WriteString(stdinPipe, "23 11\n")
//根据测试的输入案例进行运行,拿到输出结果和标准结果的比对
if err := cmd.Run(); err != nil {
   fmt.Println("执行错误")
   log.Fatalln(err)
}
fmt.Println(out.String())
fmt.Println(out.String() == "34\n")

就能够运行成功啦。

 

显示全文