php exec() 未执行该命令

2022-08-30 11:00:22

我已尝试使用 with 来检查它是否有效,我得到了以下结果:exec()'whoami'

nt authority\system

现在我需要运行一个带有via函数参数的文件。.exephpexec()

我在命令提示符下尝试了这个,它实际上运行了具有给定参数的程序。这是示例命令。


注意 exe 文件获取 3 个输入(文件夹、file_name、report_file_nmae)

> ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml

但是当我从文件运行此命令时:php

exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml');

什么都没发生。这是我第一次使用exec()函数,所以我不熟悉它的细节。怎么了?

我尝试使用:

  • \\而不是\
  • escapeshellarg()在目录中
  • 在目录文件夹名称周围添加""

没有运气

补遗:

echo exec($command)  // echos < .... why?

exec($command, $output);
print_r($output);        // Array()

我甚至将文件的权限更改为对所有用户的完全控制。如果我从 调用程序,我可以看到图标出现在时钟旁边一秒钟。command prompt

但同样的调用甚至不会调用该程序。php

编辑

甚至不起作用。也许必须对配置做些什么?exec('notepad.exe');php


答案 1

我已经说过我是新来的。在进行了更多的挖掘之后,我发现了需要在 命令末尾添加的内容。exec()2>&1exec()

感谢您在评论中指出这一点。我没有立即尝试这个,因为你说这是一个Linux命令,我在Windows上。@mattosmat

因此,我发现,该命令实际上是在后端执行的。这就是为什么我看不到它实际运行的原因,我期待发生这种情况。

对于所有遇到类似问题的人,我的建议是使用该命令。它将指出所有错误,并告诉您有关执行的信息/详细信息。

exec('some_command 2>&1', $output);
print_r($output);  // to see the response to your command

感谢所有的帮助,我很感激;)


答案 2

您也可以尝试为尝试运行的二进制文件提供完整路径。这解决了我在尝试使用.ImageMagick


推荐