• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go在windows下执行命令行指令

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

需要在Go写的服务里面调用命令行或者批处理,并根据返回的结果做处理。

在网上搜索了一翻,验证成功,现记录如下:

 1 cmd := exec.Command("cmd")
 2     // cmd := exec.Command("powershell")
 3     in := bytes.NewBuffer(nil)
 4     cmd.Stdin = in //绑定输入
 5     var out bytes.Buffer
 6     cmd.Stdout = &out //绑定输出
 7     go func() {
 8         // start stop restart
 9         in.WriteString("nssm restart uplusSVCWB\n") //写入你的命令,可以有多行,"\n"表示回车
10     }()
11     err = cmd.Start()
12     if err != nil {
13         log.Fatal(err)
14     }
15     log.Println(cmd.Args)
16     err = cmd.Wait()
17     if err != nil {
18         log.Printf("Command finished with error: %v", err)
19     }
20     rt := out.String() //mahonia.NewDecoder("gbk").ConvertString(out.String()) //
21     fmt.Println(rt)
22 
23     if strings.ContainsAny(rt, "成功") {
24         fmt.Fprintf(w, "{\"msg\":\"%s\"}", "操作成功")
25     } else {
26         fmt.Fprintf(w, "{\"msg\":\"%s\"}", rt)
27     }

windows下面用cmd返回中文会出现乱码,即使是用powershell在命令行模式调用其他程序,也可能出现这个情况。

所以根据实际情况可能需要做一下转码。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言第一深坑:interface与nil的比较发布时间:2022-07-10
下一篇:
go的匿名组合发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap