我想为我的游戏服务器创建一个简单的处理程序。它将直接读取控制台并采取我想要的任何操作。但!我无法将服务器的输出传递给我的exe或txt。
ping google.com > ping.log
它工作正常,一切都将记录在我的日志文件中。我还创建了一个exe,它可以通过这种方式读取输出数据:
ping google.com | my.exe
它也很好,我的exe的内容是:
#include <iostream>
#include <windows.h>
using namespace std;
int main() {
string input = "";
while(cin) {
getline(cin, input);
cout << input << endl;
};
system("pause");
}
它逐行显示所有内容。
问题在于jampded.exe。如果我用批处理文件启动它,它在控制台窗口中有输出,但是我无法将其传递给我的日志文件或my.exe。我不知道。
我把cout-s放在我的代码中,所以它显示它在while循环中。 getline等待cin,但没有通过..但为什么?
答案 0 :(得分:0)
您的程序可能会使用stderr
来输出数据。
尝试将jampded.exe | yourprogram.exe
替换为jampded.exe 2| yourprogram.exe
答案 1 :(得分:0)
我对jampded不熟悉,但通常情况下,服务器会向控制台输出一些启动消息,然后从控制台输入/输出中分离出来,这样它就可以在后台运行。可以将任何其他消息写入日志文件。
您可以启动jampded命令行或配置文件选项以继续写入控制台。或者您可以阅读日志文件。 (我通常使用gnuwin32文件utils中的“tail.exe -f”。)
谷歌上的快速搜索还显示有一个名为jamp.exe的非专用服务器版本。出于测试目的,它可以提供更大的灵活性来捕获输出。