【问题标题】:confused about streams对流感到困惑
【发布时间】:2012-09-24 05:48:01
【问题描述】:

我在 Windows 中运行一个命令,例如:

command.exe > file.txt

我在文件中得到一个文本,但是当我直接运行command.exe 时,它不会在控制台上显示该文本。该命令应该已经输出到stdout,但它没有。有没有办法可以找出文本进入哪个流并使用php 阅读该文本。

提前致谢

【问题讨论】:

  • 你为什么用 PHP 标记这个问题? command.exe 是一个可执行文件,其余的是标准的 windows 'streaming'。
  • 在php中运行命令主要有两种方式,一种是自动转储到输出,另一种是将其存储在一个字符串中..
  • 欧文,因为他在调用系统命令或者exec,想要处理结果。
  • @BugFinder 那两种方法是什么
  • 见上文 - 你要不要费心展示你的代码?如果您查看手册,它会告诉您替代方案以及如何使用它们并获得响应

标签: php windows batch-file operating-system


【解决方案1】:

在 PHP 中运行 shell 命令就像调用 shell_exec() 或那里的任何链接函数。命令的输出转到文档所说的地方。

例如 passthru() 将输出直接发送到浏览器。

【讨论】:

  • 对此有什么解释。我的意思是重定向操作员能够在文件中获取文本,但没有重定向文本不会显示在控制台上..
  • 您始终可以尝试将 STDOUT 和 STDERR 重定向到您选择的目标。这取决于你的命令。
  • 另一件事可能是您的命令在检测到这一点时不会显式输出到 STDOUT。
  • 感谢您的时间..它是使用 exec() 返回的..我反编译了二进制文件,该命令使用简单的 wprintf..没有标准输出检测..没有发现它是如何隐藏文本的控制台..仍然得到了我需要的东西
猜你喜欢
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
  • 2012-07-22
  • 2013-05-13
  • 2020-04-16
相关资源
最近更新 更多