使用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/

10-13 07:18
查看更多