go如何调用exe并捕获输出?

cmd和os.StartProcess方法

补充一 os.StartProcess,返回的progress类好像没有类似方法.只有wait,kiil,getpid什么的

补充二~: pid, err := os.StartProcess("tesseract.exe", []string{"param1","param2","param3"}, procAttr) 其中,"param1",似乎是args[0]?????,从param1开始填,我这边会执行无效. param1的实测行为,就像占位符一样,输入什么进去,应该都可以. 有能力的朋友,希望帮我解释下

补充三: 如果连续的执行命令,pipline会不会效率更高? 但是,pipline似乎有时间限制,我不确定,会自动关闭?

已邀请:

stevewang

赞同来自: philosophia14 cholerae

其实你看看os/exec的文档就明白了。

package main

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

func main() {
    bout := bytes.NewBuffer(nil)
    berr := bytes.NewBuffer(nil)
    cmd := exec.Command("foo.exe")
    cmd.Stdout = bout
    cmd.Stderr = berr
    cmd.Run()
    fmt.Println("stdout:", bout.String())
    fmt.Println("stderr:", berr.String())
}

philosophia14

赞同来自:

回:stevewang 我用的是os.StartProcess版本的 就不知道怎么输出stdout到变量了

要回复问题请先登录注册