Gloang exec .bat或.exe文件但没有输出

时间:2017-09-17 12:37:53

标签: windows go output

我想用golang执行.exe文件并在web套接字中发送输出值。

它在linux中工作得很好,当我运行bash文件但没有在带有.exe或.bat文件的窗口中工作时(带有一些参数的.bat文件运行.exe文件)。该程序已执行但我从未看到并重述脚本的输出。我的问题是如何在Windows中获取脚本的输出。如果你可以帮助我,那将是一个折旧。

谢谢:)

cmd := exec.Command("cmd", "/C", "file.exe or file.bat", "parameters")
stdout, err := cmd.StdoutPipe()
if err != nil {
    panic(err)
}
stderr, err := cmd.StderrPipe()
if err != nil {
    panic(err)
}
err = cmd.Start()
if err != nil {
    panic(err)
}

scannerOut := bufio.NewScanner(stdout)
for scannerOut.Scan() {

    log.Printf("%s", scannerOut.Text())

    err = socket.Emit("test", map[string]interface{}{"user": user, "name": Name, "data": scannerOut.Text()})
    if err != nil {
        log.Println(err)
    }
}

感谢您的帮助我尝试了但是对我来说脚本已经执行了但我没有输出:/

output, err := exec.Command("cmd", "/C", cmdPath).CombinedOutput()
//cmd := exec.Command("ping", "google.fr", "-t")
//cmd := exec.Command("cmd", "/C", "C:/Users/Cyril/Desktop/zec_miner/miner", "--server", "zec-eu1.nanopool.org", "--user", "t1cjM242nws6QjfGWApeASG9DNDpsrHWv8A.ccl3ouf/cyril.connan@gmail.com", "--pass", "z", "--port", "6666")
/*stdout, err := cmd.StdoutPipe()*/
if err != nil {
    panic(err)
}

log.Printf("%s", string(output))

err = socket.Emit("test", map[string]interface{}{"user": user, "rig_name": rigName, "data": output})
if err != nil {
    log.Println(err)
}

1 个答案:

答案 0 :(得分:0)

我创建了一个小的hello world程序hello.exe,只打印“Hello World!”到stdout。然后以下程序调用{​​{1}}并打印“Hello World!”同样。

管道代码或扫描仪内容可能存在错误,请先尝试一个简单的示例,看看它失败的位置。

hello.exe