加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Go在windows下执行命令行指令

发布时间:2020-12-14 05:37:12 所属栏目:Windows 来源:网络整理
导读:需要在Go写的服务里面调用命令行或者批处理,并根据返回的结果做处理。 在网上搜索了一翻,验证成功,现记录如下: 1 cmd := exec.Command( " cmd " ) 2 // cmd := exec.Command("powershell") 3 in := bytes.NewBuffer(nil) 4 cmd.Stdin = in // 绑定输入 5

需要在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 uplusSVCWBn") //写入你的命令,可以有多行,"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在命令行模式调用其他程序,也可能出现这个情况。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读