我有一个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';
答案 0 :(得分:1)
我发现问题我不知道为什么,但我应该去命令行并简单地调用gams
echo exec('C:\WINDOWS\system32\cmd.exe');
echo exec('gams.exe trnsport_php.gms');
答案 1 :(得分:0)
system
和exec
命令在失败时返回false
,在成功时返回执行命令的结果的最后一行。要测试命令是否成功运行,您必须像这样使用它:
if (system('./gams.exe trnsport_php.gms') === FALSE)
echo 'error';
else
echo 'success';
如果您不使用=== FALSE
,如果没有输出,您也会看到'错误'。
也许尝试使用passthru
查看已执行命令的原始输出。