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 に答える