使用系统从应用程序执行exe文件


execute exe file from an application with system

我有一个Gams应用程序,我想通过php代码运行它在尝试了很多事情之后,我终于发现要在命令行中运行,我应该转到C:'Program Files'GAMS23.7,在命令行运行一个命令来运行应用程序,如下所示:

gams.exe trnsport_php.gms

Gams将在命令行中成功运行,现在我想在php中运行它,我用这个路径添加了一个别名

C: ''Program Files''GAMS23.7

然后我在那里创建了php文件当我想用php:中的这段代码来测试它时

if(system('gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';

它显示错误

再次使用这个:

if(system('./gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';

已再次打印错误

我也试过exec,但没有结果。我不知道这里出了什么问题。这个也不起作用:

if(system ("'"C:''Program Files''GAMS23.7''gams.exe '"C:''Program Files''GAMS23.7''trnsport_php.gms"))
echo'success';
else
echo 'no';

我发现了这个问题,我不知道为什么,但我应该去命令行,简单地调用gams

echo exec('C:'WINDOWS'system32'cmd.exe');
echo exec('gams.exe trnsport_php.gms');

systemexec命令在失败时返回false,在成功时返回执行命令结果的最后一行。要测试命令是否成功运行,您必须这样使用它:

if (system('./gams.exe trnsport_php.gms') === FALSE)
  echo 'error';
else
  echo 'success';

如果不使用=== FALSE,则如果未生成输出,也会看到"错误"。

也许可以尝试使用passthru来查看已执行命令的原始输出。