经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Windows » 查看文章
Go在windows下执行命令行指令
来源:cnblogs  作者:封三郎  时间:2019/7/30 9:38:57  对本文有异议

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

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

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

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

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

原文链接:http://www.cnblogs.com/codingnote/p/11265376.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号