我正在努力获取其中包含管道的 Windows 命令的输出。这是命令:
系统信息 | findstr /B /C:"操作系统名称"
这是代码:
c1 := exec.Command("systeminfo")
c2 := exec.Command("findstr", "/B", `/C:"OS Name"`)
r, w := io.Pipe()
c1.Stdout = w
c2.Stdin = r
var b2 bytes.Buffer
c2.Stdout = &b2
c1.Start()
c2.Start()
c1.Wait()
w.Close()
c2.Wait()
io.Copy(os.Stdout, &b2)
fmt.Println(b2)
输出: []
如果我在 cmd 中复制/粘贴命令,它将返回结果。不知道为什么我不能在我的 Go 程序中反映出来。我尝试了几种变体,包括在第一个命令中添加“cmd”、“/C”,但也没有成功。
慕丝7291255
相关分类