在golang

时间:2016-03-21 06:59:15

标签: go cmd operating-system exec system-information

我试图在Golang中获取操作系统名称以下是我的代码。

// GetOsName.go
package main

import (
    "fmt"
    "os/exec"
)

func main() {
    fmt.Println("systeminfo","|","findstr","/B","/C:\"OS Name\"")
    Out,err:=exec.Command("systeminfo","|","findstr","/B","/C:\"OS Name\"").Output()
    if err!=nil{
        fmt.Println("Err:",err)
    }else{
        fmt.Println("Out:",string(Out))
    }
}

但是当我执行代码时,我收到了这条消息

systeminfo | findstr /B /C:"OS Name"
Err: exit status 1

命令是对的。当我尝试在单独执行命令时它工作正常。 帮助我解决这个问题,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您的命令正确。您的命令是shell代码,除了shell(此处为cmd.exe)之外无法执行。如果您确实希望得到如下操作系统名称:使用您的命令作为参数执行cmd.exe。您可以考虑执行systeminfo.exe并解析Go中的输出(而不是shell)。