使用Perl或PHP,有什么办法可以从另一个输出到Windows cmd shell的进程中获取输出?我有一个输出某些信息的游戏服务器,例如说“43秒内玩家完成赛道”,我想捕获那条线并使用Perl或PHP向网络服务器发送请求以更新网页上的排名。有没有办法在Perl或PHP中获取该输出管道?还是可以使用C++ Windows API来实现?
在这里让我澄清一下:我想执行一个单独的Perl或PHP脚本,该脚本从Windows cmd shell抓取输出,并且显示到Windows cmd shell的输出来自另一个进程。
最佳答案
您需要在Perl中启动服务器:
my $server_out = `server.exe`; # Note the backticks.
现在$ server_out包含server.exe的输出。但是这里的窍门是,您必须等到server.exe退出后才能输出。
尝试IPC::Run(这不是核心模块)
use English;
use IPC::Run;
my ($stdout, $stderr);
IPC::Run::run([$cmd, $arg1, $arg2, $argN], \undef, \$stdout, $stderr);
while(<$stdout>) {
print "Cmd said $_\n";
}
注意:代码未经测试。
找到了信息here.
关于php - 如何捕获Windows cmd shell的输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1002543/