$exec = exec("net use LPT1: ''XXXXXX'PRINTER1 ''PERSISTENT:YES");
$exec = exec("E:");
$exec = exec("COPY OUT.TXT LPT1");
尝试shell_exec
$exec = shell_exec("net use LPT1: ''XXXXXX'PRINTER1 ''PERSISTENT:YES");
$exec = shell_exec("E:");
$exec = shell_exec("COPY OUT.TXT LPT1");
尝试过 popen
$exec = popen("net use LPT1: ''XXXXXX'PRINTER1 ''PERSISTENT:YES", "r");
$exec = popen("E:", "r");
$exec = popen("COPY OUT.TXT LPT1", "r");
我已经在我的代码中尝试了所有这些,但我无法执行它.. 任何人都可以给出解决方案
exec()
不会向您显示调用可能产生的任何错误消息。
若要调试问题,需要使这些消息可见。从这个问题中窃取:
exec('(your command here) 2>&1',$output,$return_val);
if($return_val !== 0) {
echo 'Error<br>';
print_r($output);
}
另外,我不确定执行E:
是否真的会更改以下命令的工作目录。使用绝对路径可能更好:
exec("COPY E:'OUT.TXT LPT1");
每个exec()
(或其他 shell(调用都会打开一个 shell,然后再次关闭它。您必须将所有内容组合在一个exec()
调用中,也许使用批处理脚本。