-2

我试图在 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

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

4

1 回答 1

1

你的命令不对。您的命令是 shell 代码,只能通过 shell(此处为 cmd.exe)执行。如果您真的想获得这样的操作系统名称:使用您的命令作为参数执行 cmd.exe。您可能会考虑执行 systeminfo.exe 并在 Go(而不是 shell)中解析输出。

于 2016-03-21T07:05:54.823 回答