gpt4 book ai didi

windows - Golang exec .bat 或 .exe 文件但没有得到输出

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:19 30 4
gpt4 key购买 nike

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

它在 linux 中运行良好,当我运行 bash 文件但在 Windows 中无法使用 .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)
}

最佳答案

我创建了一个 hello world 小程序 hello.exe,它只打印“Hello World!”到标准输出。然后下面的程序调用 hello.exe 并打印“Hello World!”

也许您的管道代码或扫描程序中存在错误,请先尝试一个简单的示例,看看它在哪里失败。

package main

import (
"fmt"
"os/exec"
)

func main() {
output, err := exec.Command("cmd", "/C", "hello.exe").CombinedOutput()
if err != nil {
panic(err)
}
fmt.Println(string(output))
}

关于windows - Golang exec .bat 或 .exe 文件但没有得到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46264161/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com