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
更好,因为您正在执行多个命令。
可以手动 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");
它应该有效:)
首先,我在本地有一个网站 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
更好,因为您正在执行多个命令。
可以手动 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");
它应该有效:)