首先,我将命令构建为 exec.exe:
package main
import "fmt"
func main() {
var input string
fmt.Println("input a value")
fmt.Scanln(&input)
fmt.Println(input)
fmt.Println("input another value")
fmt.Scanln(&input)
fmt.Println(input)
}
然后我想使用 os/exec 包来运行它:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("G:\\go_workspace\\GOPATH\\src\\pjx\\modules\\exec\\exec")
stdin, e := cmd.StdinPipe()
if e != nil {
panic(e)
}
stdout, e := cmd.StdoutPipe()
if e != nil {
panic(e)
}
if e:=cmd.Start();e!=nil {
panic(e)
}
stdin.Write([]byte("hello"))
var buf = make([]byte, 512)
n, e := stdout.Read(buf)
if e != nil {
panic(e)
}
fmt.Println(string(buf[:n]))
if e := cmd.Wait(); e != nil {
panic(e)
}
}
最后我运行它,结果将在用户输入阶段暂停,例如:
(如果图片未加载,它们会在输入阶段暂停)
please input a value:
1
12
232
我是否以错误的方式使用cmd管道?
海绵宝宝撒
慕盖茨4494581
陪伴而非守候
相关分类