start
不是一个独立的应用程序,它是 Windows 命令行解释器的(内部)命令(cmd.exe
) (细节:命令行参考/启动 https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb491005(v=technet.10)),所以你需要一个“shell”来运行start
命令。
Use cmd.exe
与/C
参数,并传递start
以及要运行的应用程序。
就像这个例子一样:
s := []string{"cmd.exe", "/C", "start", `c:\path\to\your\app\myapp.exe`}
cmd := exec.Command(s[0], s[1:]...)
if err := cmd.Run(); err != nil {
log.Println("Error:", err)
}
或者不使用命令 slice:
cmd := exec.Command("cmd.exe", "/C", "start", `c:\path\to\your\app\myapp.exe`)
if err := cmd.Run(); err != nil {
log.Println("Error:", err)
}
您还可以通过/b
参数到start
如果您不希望启动的应用程序有终端窗口,请像这样:
cmd := exec.Command("cmd.exe", "/C", "start", "/b", `c:\path\to\your\app\myapp.exe`)
if err := cmd.Run(); err != nil {
log.Println("Error:", err)
}