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到变量了

要回复问题请先登录注册