PHP&Windows

exec()関数を使って、他のバッチファイルを呼びこみ、
別のPHPを実行しているのですが、その実行元となるPHPのコマンドプロンプト画面がとじません。

cmd.exe c/ で実行しているのですが、それでも、PHPの処理が終了後も、コマンドプロンプトの画面自体は残っています。

どうすれば閉じますか?

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/08/06 09:39:28
  • 終了:2015/08/06 17:47:01

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4621ベストアンサー獲得回数19562015/08/06 11:15:14

ポイント100pt

この質問と同じ話ですよね。
別ウィンドウのコマンドプロンプトで BATCH.bat を起動するけど、そのウィンドウが開きっぱなしになってるという。

ふたつ思いつきました。

ひとつは、start コマンドを使わない方法。
呼び出し側の php スクリプトをこうします。

<?php
echo "hi!";

exec("cmd.exe /c BATCH.bat");   // ★ start コマンドを使わない
exit();
?>

BATCH.bat は、この php スクリプトを呼び出したコンソールウィンドウの中で動きます。

もうひとつは、呼び出し先の BATCH.bat の最後に exit を書いておく。

@echo off

php ...

exit        ★ これ

この exit を書いておくと、BATCH.bat の処理が終わるとウィンドウが閉じると思います。

他2件のコメントを見る
id:webtomake

すいません、しっかりとご回答を読んでおりませんでした。

最後に exit を記述したら解決しました。

ご丁寧にありがとうございました。

2015/08/06 17:46:49
id:a-kuma3

それは良かった :-)
BATCH.bat の中身が php のスクリプトを起動しているだけだったら、以下のようなやり方もあるようです。
http://www.miuxmiu.com/archives/tag/background
http://www.phppro.jp/qa/977

2015/08/06 18:25:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません