go语言入门-搞定cmd
来源:互联网 发布:淘宝销量排行榜查询 编辑:程序博客网 时间:2024/06/07 04:45
go语言入门-搞定cmd
package mainimport ( "bufio" "fmt" "io" "os/exec" "regexp" "strconv" "strings")func main() { command := "ping" params := []string{"-a", "127.0.0.1"} //执行cmd命令: ls -l execCommand(command, params) // command := "ipconfig" // params := []string{"/all"} // //执行cmd命令: ls -l // ip := getip(command, params) // fmt.Println(ip) // ip2 := IncIP(ip, 1) // ip3 := IncIP(ip, 2) // ip4 := IncIP(ip, 3) // ip5 := IncIP(ip, 4) // fmt.Println(ip2) // fmt.Println(ip3) // fmt.Println(ip4) // fmt.Println(ip5)}func IncIP(ip string, n int) string { ips := strings.Split(ip, ".") ip3, error := strconv.Atoi(ips[3]) if error != nil { fmt.Println("字符串转换成整数失败") } ip3 = ip3 + n ip3_d := strconv.Itoa(ip3) //数字变成字符串 ip_new := ips[0] + "." + ips[1] + "." + ips[2] + "." + ip3_d //fmt.Println(ip_new) return ip_new}func execCommand(commandName string, params []string) bool { cmd := exec.Command(commandName, params...) //显示运行的命令 fmt.Println(cmd.Args) stdout, err := cmd.StdoutPipe() if err != nil { fmt.Println(err) return false } cmd.Start() reader := bufio.NewReader(stdout) //实时循环读取输出流中的一行内容 for { line, err2 := reader.ReadString('\n') if err2 != nil || io.EOF == err2 { break } // enc := mahonia.NewDecoder("UTF-8") // goStr := enc.ConvertString(line) fmt.Println(line) } cmd.Wait() return true}func getip(commandName string, params []string) string { cmd := exec.Command(commandName, params...) //显示运行的命令 fmt.Println(cmd.Args) stdout, err := cmd.StdoutPipe() if err != nil { fmt.Println(err) return "" } cmd.Start() reader := bufio.NewReader(stdout) result := "" //实时循环读取输出流中的一行内容 for { line, err2 := reader.ReadString('\n') if err2 != nil || io.EOF == err2 { break } //fmt.Println(line) reg := regexp.MustCompile("\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}") //六位连续的数字 //返回str中第一个匹配reg的字符串 data := reg.Find([]byte(line)) if data != nil { result = string(data) //fmt.Println(result) break } } cmd.Wait() return result}
0 0
- go语言入门-搞定cmd
- go语言之Cmd.start, Cmd.Wait
- go语言之exec.Cmd
- 30分钟搞定GO语言(一)
- go 语言入门
- Go语言入门资料
- go语言入门
- go语言入门
- Go语言1-入门
- Go语言入门
- Go语言编程入门
- Go语言快速入门
- Go语言Seelog入门
- go语言入门
- go语言入门必备
- go语言入门
- Go语言入门
- go 语言入门笔记
- linux-raspbian出现疑似.bashrc文件异常
- ACM
- 引用传值和指针传值的区别
- 設計模式之王
- EcShop的foreach使用方法和三层嵌套
- go语言入门-搞定cmd
- 关于闭包的面试题引发的思考
- 三栏布局的两边定宽100px,中间自适应
- 对象数组+对象指针+指向对象的指针
- 【maven】3、Maven快速Demo
- SourceTree冲突解决(Windows)
- 声明ViewHolder(或Handler)内部类时,建议使用static关键字的原因
- Arrays.tostring和a.toString返回的问题
- HTML5canvas时钟实例