0
$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");

尝试过

 $exec = popen("net use LPT1: \\XXXXXX\PRINTER1 \\PERSISTENT:YES", "r");
$exec = popen("E:", "r");
$exec = popen("COPY OUT.TXT LPT1", "r");

我已经在我的代码中尝试了所有这些,但我无法执行它..任何人都可以提供解决方案

4

2 回答 2

2

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");
于 2013-07-11T14:01:18.950 回答
0

每个exec()(或其他 shell)调用都会打开一个 shell 并再次关闭它。您必须在一次exec()调用中组合所有内容,可能使用批处理脚本。

于 2013-07-11T14:00:17.467 回答