golang执行命令出错
Error in executing a command in golang
我尝试在 Golang 中获取 OS 名称 下面是我的代码。
// 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
命令正确。当我尝试单独执行命令时,它工作正常。
帮我解决这个提前谢谢。
您的命令不正确。您的命令是 shell 代码,只能通过 shell(这里是 cmd.exe)执行。如果您真的想像这样获得 OS 名称:执行 cmd.exe 并将您的命令作为参数。您可能会考虑执行 systeminfo.exe 并在 Go 中解析输出(而不是 shell)。
我尝试在 Golang 中获取 OS 名称 下面是我的代码。
// 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
命令正确。当我尝试单独执行命令时,它工作正常。 帮我解决这个提前谢谢。
您的命令不正确。您的命令是 shell 代码,只能通过 shell(这里是 cmd.exe)执行。如果您真的想像这样获得 OS 名称:执行 cmd.exe 并将您的命令作为参数。您可能会考虑执行 systeminfo.exe 并在 Go 中解析输出(而不是 shell)。