代码示例
package main
import (
"bufio"
"bytes"
"io"
"io/ioutil"
"os"
"os/exec"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
)
func main() {
// 输入执行的命令
cmd := exec.Command(`systeminfo`)
// 获取子进程标准输出
stdout, _ := cmd.StdoutPipe()
// 执行命令
cmd.Start()
// 读取子进程
reader := bufio.NewReader(stdout)
for {
line, err2 := reader.ReadString('\n')
if err2 != nil || io.EOF == err2 {
break
}
// 转换CMD的编码为GBK
reader := transform.NewReader(
bytes.NewReader([]byte(line)),
simplifiedchinese.GBK.NewDecoder(),
)
d, _ := ioutil.ReadAll(reader)
// 将子进程的内容输出
print(string(d))
}
// 模拟CMD暂停
bufio.NewReader(os.Stdin).ReadLine()
}
网友评论