$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");
我在我的代码中尝试了所有这些,但我无法执行它..任何人都可以提供解决方案
答案 0 :(得分:1)
exec()
不会向您显示您的通话可能产生的任何错误消息。
要调试问题,您需要显示这些消息。窃取this question:
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");
答案 1 :(得分:0)
每个exec()
(或其他shell)调用都会打开一个shell并再次关闭它。您必须在一次exec()
调用中组合所有内容,也可以使用批处理脚本。