介绍
这篇文章给大家分享的是有关Golang如何执行cmd命令行的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
1。Golang执行系统命令使用os/exec命令方法:
函数命令(名称字符串,字符串参数…)* Cmd
第一个参数是命令名称,后面参数可以有多个命令参数。
Cmd:=exec.Command (“ls",“-a") 如果stdout,犯错:=cmd.StdoutPipe ();犯错!=nil{//获取输出对象,可以从该对象中读取输出结果 log.Fatal (err) } 推迟stdout.Close()//保证关闭输出流 如果犯错:=cmd.Start ();犯错!=nil{//运行命令 log.Fatal (err) } 如果opBytes,犯错:=ioutil.ReadAll (stdout);犯错!=nil{//读取输出结果 log.Fatal (err) 其他}{ log.Println (string (opBytes)) }
2。,将命令的输出结果重定向到文件中:
stdout,犯错:=os.OpenFile (“stdout.log", os.O_CREATE |操作系统。O_WRONLY, 0600) 如果犯错!=nil { log.Fatalln (err) } 推迟stdout.Close () cmd。Stdout=Stdout//重定向标准输出到文件//执行命令 如果犯错:=cmd.Start ();犯错!=nil { log.Println (err) }
3。cmd的启动和运行方法的区别:
开始执行不会等待命令完成,运行会阻塞等待命令完成。
cmd:=exec.Command (“sleep",“10“) 错:=cmd.Run()//执行到此处时会阻塞等待10秒 错:=cmd.Start()//如果用开始则直接向后运行 如果犯错!=nil { log.Fatal (err) } 呃=cmd.Wait()//执行开始会在此处等待10秒
<代码> 4。如果命令名称和参数写成一个字符串传给命令> 代码方法,可能会执行失败报错:文件不存在,但此时如果按以下方式强行启动一个DOS窗口(windows平台)进行执行,也是成功的。
在windows平台,强行弹出DOS窗口执行命令行:
5。运行时隐藏golang程序自己的cmd窗口:
去构建-ldflags - h=windowsgui6。Windows平台上,执行系统命令隐藏cmd窗口:
cmd:=exec.Command (“sth") 如果运行时。美好的==皐indows"{ cmd。SysProcAttr=和系统调用。SysProcAttr {HideWindow:真} } 犯错:=cmd.Run ()感谢各位的阅读!关于Golang如何执行cmd命令行就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
Golang如何执行cmd命令行