如何使用php将命令发送到命令提示符

如何使用php将命令发送到命令提示符,php,shell,Php,Shell,已试用的shell_exec $exec = exec("net use LPT1: \\XXXXXX\PRINTER1 \\PERSISTENT:YES"); $exec = exec("E:"); $exec = exec("COPY OUT.TXT LPT1"); 波本 $exec = shell_exec("net use LPT1: \\XXXXXX\PRINTER1 \\PERSISTENT:YES"); $exec = shell_exec("E:"); $ex

已试用的shell_exec

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

 $exec = shell_exec("net use LPT1: \\XXXXXX\PRINTER1 \\PERSISTENT:YES");
$exec = shell_exec("E:");
$exec = shell_exec("COPY OUT.TXT LPT1");
我已经在我的代码中尝试了所有这些,但我无法执行它。。任何人都能给出解决方案吗?

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

exec()
不会显示调用可能产生的任何错误消息

要调试该问题,您需要使这些消息可见。偷


调试它。看看哪里出了问题。运行于的PHP用户可能无法执行这些命令。复制时也使用绝对路径。@Pekka웃 如果我运行命令prompt,这些命令可以正常工作您的观点是。。。?这并不意味着PHP也可以运行该命令。查看问题中的源代码:了解如何在执行命令时显示错误消息。默认情况下,它们不会显示。运行Web服务器的用户可能没有权限执行do
net use
如何在php中运行此命令并获取输出上面的示例?您只需在显示“此处为您的命令”的位置插入命令。在上述示例中,$output和$return_val变量指的是什么?您可以事先将它们设置为任何值,它们仅用于包含返回值。您可以执行
$output=null$return_val=null在前面的行中,这样您就不会收到任何警告。
 $exec = popen("net use LPT1: \\XXXXXX\PRINTER1 \\PERSISTENT:YES", "r");
$exec = popen("E:", "r");
$exec = popen("COPY OUT.TXT LPT1", "r");
exec('(your command here) 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}
 exec("COPY E:\OUT.TXT LPT1");