exec() 似乎不执行 .exe

exec() doesn't seems to execute .exe

首先,我在本地有一个网站 Wamp64。我想执行 a .exe 文件。

所以我这样使用 exec() 函数:

$output = exec("cd 'C:\Program Files (x86)\ENENSYS\DiviSuite' & DiviSuite-CLI.exe --in-rf --in-rf-standars T --in-rf-frequency=474 --in-rf-bandwidth=8 --in-rf-duration=20 --out-file C:\wamp64\capture.ts");

该程序必须记录一个流并将其放入 C:\wamp64\ 但它不会,而当我在 MS DOS 控制台中执行相同的命令行时有效。

此外,当我回显 $output 时,回显什么也不显示。

提前致谢。

也许在这种情况下使用 shell_exec 更好,因为您正在执行多个命令。

文档:http://php.net/manual/function.shell-exec.php

可以手动 cd 到 DiviSuite 文件夹并尝试 运行 DiviSuite 文件夹中的 php 文件,从 exec 中删除 cd 命令。 ?

试试这个

(function(){
if(($olddir=getcwd())===false){
throw new RuntimeException('getcwd() failed!');
}
if(!chdir('C:/Program Files (x86)/ENENSYS/DiviSuite')){
throw new RuntimeException('failed to enter DiviSuite folder!');
}
$output=array();
$ret=0;
exec('DiviSuite-CLI.exe --in-rf --in-rf-standars T --in-rf-frequency=474 --in-rf-bandwidth=8 --in-rf-duration=20 --out-file C:\wamp64\capture.ts',$output,$ret);
if($ret!==0){
echo "WARNING, DID NOT RETURN 0. THIS IMPLY AN ERROR IN MOST PROGRAMS.".PHP_EOL;
}
var_dump('returned:',$ret,'output:',$output);
chdir($olddir);
})();

试试这个:

$output = exec("\"C:\Program Files (x86)\ENENSYS\DiviSuite DiviSuite-CLI.exe --in-rf --in-rf-standars T --in-rf-frequency=474 --in-rf-bandwidth=8 --in-rf-duration=20 --out-file C:\wamp64\capture.ts");

它应该有效:)