package tool import ( "fmt" "os/exec" "runtime" "golang.org/x/text/encoding/simplifiedchinese" ) type Charset string const ( UTF8 = Charset("UTF-8") GB18030 = Charset("GB18030") ) func ConvertByte2String(byte []byte, charset Charset) string { var str string switch charset { case GB18030: var decodeBytes, _ = simplifiedchinese.GB18030.NewDecoder().Bytes(byte) str = string(decodeBytes) case UTF8: fallthrough default: str = string(byte) } return str } func OsCommandExec(minglingAndCanshu string) string { var zifuji Charset var cmd *exec.Cmd if runtime.GOOS == "windows"{ zifuji=GB18030 cmd = exec.Command("cmd", "/C",minglingAndCanshu ) }else { zifuji=UTF8 cmd = exec.Command("sh", "-c",minglingAndCanshu ) } //Linux调用系统命令: ping两个包,每个最多等待1秒。命令分割用; //cmd := exec.Command("sh", "-c", "ping 192.168.99.1 -c 2 -W 1; dir") //window调用系统命令:ping两个包,每个最多等待1秒。命令分割用& //cmd := exec.Command("cmd", "/C", `ping 192.168.99.1 -n 2 -w 1000 & dir`) stdoutStderr, err := cmd.CombinedOutput() if err != nil { fmt.Printf("%s\n",err.Error()) } return fmt.Sprintf("%s\n", ConvertByte2String(stdoutStderr, zifuji)) }