Go语言执行Windows命令,并获取到执行结果,并解决乱码问题
使用exec包执行Windows命令行命令
调用执行函数模拟命令执行,如果我想查看D盘下的文件,可以使用dir D:\
,但是在go语言里面,直接执行会找不到dir
命令
可以使用cmd /C
去调用Windows的命令执行目录,然后在执行dir
例如:cmd /C dir D:\
//调用执行函数
cmd := exec.Command("cmd", "/C", "dir", "D:\\")
//打开一个命令行,并执行 cmd /C dir D:\
//返回执行后的结果和error
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(out) //打印执行后的结果
解决输出的乱码问题
下载text包
go get github.com/golang/text
复制目录下的text
到你的工作目录(src)下的src/golang.org/x/
完整代码
package main
import (
"fmt"
"os/exec"
"golang.org/x/text/encoding/simplifiedchinese"
)
func main() {
//windwos
cmd := exec.Command("cmd", "/C", "dir", "D:\\")
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
output, err := simplifiedchinese.GB18030.NewDecoder().String(string(out)) //转换字符集,解决UTF-8乱码
if err != nil {
fmt.Println(err)
}
fmt.Println(output)
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步