0

私は何時間もこの壁に頭をぶつけていましたが、何の進歩もありません.

今、私は自分の問題を単純な (たぶん?) ローカルホストで .bat プログラムを実行するための PHP スクリプトを取得しようとするタスクに煮詰めました。WAMPを使用しています。

これは私の現在のPHPファイルです:

<?php system('cmd /c C:\Users\user\Desktop\open.bat'); ?>

それだけです。デスクトップにある私の .bat ファイルには、次のものが含まれています。

notepad.exe C:\Users\user\Desktop\test.txt

そして、デスクトップに test.txt という単純なテキスト ファイルがあります。コマンド ラインから .bat ファイルを実行できますが、正常に動作しますが、PHP 内からは何も実行されません。

ここには、PHP から .bat を実行する方法を尋ねるスレッドが他にも多数あります (例: PHPから .bat ファイルを実行するにはどうすればよいですか? )。

例、試してみました

exec('open.bat')(同じディレクトリにある.batを使用)、shell_exec()ファイルの場所、パスを変更すると、何が起こっているのか本当にわかりません。PHPをセーフモードで実行していません。

おそらく、それを実行できるようにするために知っておくべきいくつかの構成がありますか? それとも、痛々しいほど明らかな何かが欠けているのかもしれません...

4

3 に答える 3

1

メモ帳はインタラクティブなプログラムであり、Webサーバー(起動しようとしている)は現在のユーザーセッションとは異なるユーザーセッションで実行されているため、メモ帳が実行されていない可能性がありますコマンドラインから同じ操作を実行します(例:php -f)その場合は機能します。

于 2012-12-22T19:15:11.067 に答える
0

これを試して....

<?php
$cmd = C:\Users\user\Desktop\open.bat;
function execInBackground($cmd) {
   if (substr(php_uname(), 0, 7) == "Windows"){
       pclose(popen("start /B ". $cmd, "r")); 
   }
   else {
       exec($cmd . " > /dev/null &");  
   }
}
execInBackground($cmd);
?>

詳細については、http: //php.net/manual/en/function.exec.phpを参照してください。

于 2014-09-22T12:16:45.080 に答える