| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package cmd
- import (
- "fmt"
- "os/exec"
- "strings"
- )
- /*
- @Description : execute a command in windows cmd
- */
- func Command(exe string, args []string) (result string, err error) {
- cmd := exec.Command(exe, args...)
- // 命令的错误输出和标准输出都连接到同一个管道
- stdout, _ := cmd.StdoutPipe()
- cmd.Stderr = cmd.Stdout
- err = cmd.Start()
- if err != nil {
- XWarning(fmt.Sprintf("cmd.Start error : %v\n", err))
- return
- }
- var rets []string
- // 从管道中实时获取输出并打印到终端
- for {
- tmp := make([]byte, 1024)
- _, err := stdout.Read(tmp)
- if err != nil {
- break
- }
- rets = append(rets, ConvertByte2String(tmp, "GB18030"))
- }
- result = strings.Join(rets, "\n")
- return
- }
|