go在windows下执行系统命令调用问题?求教

stuven · · 2219 次点击
恩 我现在采用的是分行读取,command加了/k /q的参数。冗余信息更少一些。
#9
更多评论
stevewang
耶和华是我的牧者,我必不至缺乏。
管道`|`是在shell下才支持的,不能直接用于创建进程。
#1
stevewang
耶和华是我的牧者,我必不至缺乏。
在windows下应该是这样: ``` package main import ( "bytes" "fmt" "io" "os/exec" ) func main() { cmd := exec.Command("cmd.exe") out := &bytes.Buffer{} cmd.Stdout = out w, err := cmd.StdinPipe() if err != nil { panic(err) } if err := cmd.Start(); err != nil { panic(err) } io.WriteString(w, `echo "helloworld" | find /i "hello"`) io.WriteString(w, "\n") w.Close() if err := cmd.Wait(); err != nil { panic(err) } fmt.Println(out.String()) } ```
#2