-1

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が実行されるとは思いません。

4

2 に答える 2

1

これを行うさまざまな方法を試してください。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>";
}

私がそれで作業する出力から、いくつかの出力があるはずです。

于 2012-12-04T19:05:34.577 に答える
1

なぜしないのですか:

$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.outandprocess.errが実行されるたびに消去されmakeます。この動作を回避するには、>記号を>>, に置き換えるだけで、ファイルが追加されます。

于 2012-12-04T19:07:57.520 に答える