【发布时间】:2023-03-09 11:15:01
【问题描述】:
我有一个程序,它必须从 cmd.exe 运行并提供一些参数。该命令如下所示:
query.exe USERNAME PASSWORD WMI_QUERY MACHINE
这个程序运行良好。但是当我尝试使用以下代码从 PHP 运行它时:
function execute_query($ip, $username, $password, $query){
$runCMD ="query.exe " . $username . " " . $password . ' "' .$query . '" ' . $ip;
echo exec($runCMD);
print_r ($stdout);
}
我没有得到任何输出。它说进程成功终止,但没有别的,尽管程序运行并成功返回输出。我在 php 7.1 中使用 windows 和 XAMPP 我厌倦了使用 shell_exec,但没有任何运气。还有其他想法吗?
【问题讨论】:
-
exec()为终端中的每一行输出返回一个数组中的输出。 iirc shell_exec 不返回任何内容。检查通过引用传递的数组参数 - php.net/manual/en/function.exec.php -
$stdout 也没有定义
-
哎呀,忽略我的第一条评论,我不知道为什么我认为 shell_exec 没有返回任何东西,但 $stdout 仍然没有定义
-
你实际上并没有执行你的
$runCMD。 -
它没有运行 $runCMD 因为我正在测试。我尝试创建 var $output = [] 并将其设置为第二个参数,但当我打印它时它是空的。