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在命令行模式调用其他程序,也可能出现这个情况。 所以根据实际情况可能需要做一下转码。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – Windows Server 2008上的uptime.ex
- Windows – Amazon EC2容量和工作流程问题
- iis-7 – PUT和DELETE在Windows 2008 Server IIS 7和7.5中为
- 如何使用Windows批处理文件来衡量控制台应用程序的性能?
- function – 批处理脚本中的IP验证 – 先通过findstr匹配,然
- windows-phone-7 – WP7应用程序内购买
- 软件测试day1
- Windows Server2008搭建Exchang2010 Server
- windows – 域名时间问题
- MySQL_8.0.15_Windows10_X64 安装教程