美文网首页📙Go语言:进阶大全
Go语言:读取CMD子进程输出信息

Go语言:读取CMD子进程输出信息

作者: 白祤星 | 来源:发表于2019-03-22 19:17 被阅读2923次

代码示例


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()
}

相关文章

网友评论

    本文标题:Go语言:读取CMD子进程输出信息

    本文链接:https://www.haomeiwen.com/subject/ahtdvqtx.html