从具有系统的应用程序执行exe文件

时间:2012-02-17 10:31:44

标签: php system

我有一个Gams application我希望通过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';

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

如果您不使用=== FALSE,如果没有输出,您也会看到'错误'。

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