Как из Go приложения можно запустить внешнюю консольную программу в отдельной видимой консоли(окне)?
Среда исполнения: windows. По умолчанию Go запускает все внешние процессы в фононом режиме, либо (как в примере ниже) используется консоль самого родительского Go процесса, что меня не устраивает.
import (
"os/exec"
"os"
"fmt"
)
func main() {
cmdToRun := "c:/windows/system32/cmd.exe"
args := []string{`start "title"`, "cmd /k", "curl.exe"}
procAttr := new(os.ProcAttr)
procAttr.Files = []*os.File{os.Stdin, os.Stdout, os.Stderr}
if process, err := os.StartProcess(cmdToRun, args, procAttr); err != nil {
fmt.Printf("ERROR Unable to run %s: %s\n", cmdToRun, err.Error())
} else {
fmt.Printf("%s running as pid %d\n", cmdToRun, process.Pid)
}
}