windows - 从 Go 程序调用 Windows 批处理文件,以便它在新窗口中打开

标签 windows batch-file go cmd

<分区>

我有一个名为 cfw.bat 的批处理文件,它将接受 1 个命令行参数。

我需要从我的 go 程序调用或打开这个批处理文件,而不是在 go 中作为命令运行(因为 Go 中的命令不考虑窗口的命令)。

这是我的代码

    foundationUrl := foundations.GetFoundationApiUrl(foundationNumber)
    command := exec.Command("call","cfw.bat",foundationUrl)
    fmt.Print("Executing Command >>> ")
    fmt.Println(command.Args)
    bs,err :=command.CombinedOutput()

这是我得到的错误

Executing Command >>> [call cfw.bat https://api.sys-pcf.com]
Error exec: "call": executable file not found in %PATH%

无法执行 windows 命令.. 如果我直接从 go 代码中使用 cfw.bat 执行,它将无法工作,因为 Go 使用的 shell 仅支持 Linux/Unix

请帮助说明如何从我的 Go 程序中将批处理作为单独的窗口触发

最佳答案

来 self 的评论:

cmd := exec.Command("cmd.exe", "/C", "C:\\me\\fcf\\cfw.bat", foundationUrl)

反斜杠加倍,您提供 cfw.bat 的完整路径

替代方法可能是使用反引号:

cmd := exec.Command(`cmd.exe`, `/C`, `C:\me\fcf\cfw.bat`, foundationUrl)

如果您只想在另一个 cmd.exe 实例中打开批处理文件,那么也许可以这样做:

cmd := exec.Command(`cmd.exe`, `/C`, `Start C:\me\fcf\cfw.bat`, foundationUrl)

关于windows - 从 Go 程序调用 Windows 批处理文件,以便它在新窗口中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063411/

相关文章:

windows - windows phone 10模拟器无法启动

html - 批处理脚本 : image manipulating by adding logo and footer

windows - 批量连接视频对

go - Socket.io 客户端无法与 websocket 服务器一起使用

java - 套接字编程 : Is extra '\n' added in the golang client or the Java server?

C++ UDP RecvFrom、SendTo 不同套接字

c++ - Windows XP 在创建新线程时速度大大降低

c++ - 在 Windows 下使用 system() 命令的问题

windows - 如何创建更改我的MAC地址的批处理文件?

go - 获取 slice 的头部或除头部以外的所有内容