PHPファイルでmakefileを実行する方法はありますか? 私が試してみました:
exec('cmd /c "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\nmake.exe" -f E:\\dev\\temp.mak > process.out 2> process.err < /dev/null &');
しかし、この方法でmakefileが実行されるとは思いません。
PHPファイルでmakefileを実行する方法はありますか? 私が試してみました:
exec('cmd /c "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\nmake.exe" -f E:\\dev\\temp.mak > process.out 2> process.err < /dev/null &');
しかし、この方法でmakefileが実行されるとは思いません。
これを行うさまざまな方法を試してください。PHP ディレクトリと同じ場所に Windows バッチ ファイルを作成します。
cd C:\"Program Files"\"Microsoft Visual Studio"\VC98\Bin
nmake.exe -f E:\dev\temp.mak > process.out 2> process.err
*これに Zids コメントを組み込む: *
PHPを使用していない場合、コマンドラインからどのように実行しますか? - 取り除く
上記の方法がうまくいかない場合。Windows コマンド プロンプトから実行してその exe の使用法をオンラインで検索し、それに応じて .batch ファイルを変更します。*
これを.batch
ファイルとして保存し、PHP から実行してみてください
exec ("filename.bat", $output);
それから
単純な foreach ループで exec コマンドによって実行された出力を表示する
foreach ($output AS $OutputStr)
{
echo $OutputStr."<br>";
}
私がそれで作業する出力から、いくつかの出力があるはずです。
なぜしないのですか:
$make = escapeshellarg("C:\Program Files\Microsoft Visual Studio\VC98\Bin\nmake.exe");
$path = escapeshellarg("E:\dev\temp.mak");
exec("start /B {$make} -f {$path} > process.out 2> process.err");
start /B
プログラムをバックグラウンドで実行します
> process.out
標準出力を「process.out」ファイルにリダイレクトします
2> process.err
エラー出力を「process.err」ファイルにリダイレクトします
この例では、process.out
andprocess.err
が実行されるたびに消去されmake
ます。この動作を回避するには、>
記号を>>
, に置き換えるだけで、ファイルが追加されます。