• ベストアンサー

PHPからバッチ実行

exec('hogehoge.bat'); PHPから上記コマンドでバッチを実行すると hogehoge.bat ECHO hoge > hogehoge.log DIR \\Server1\hoge*.* > C:\hoge\hoge.log hogehoge.logにはキチンとhogeと書いてありますが hoge.logは作成されますが真っ白なままです。 NET USE F: \\Server1 ドライブに割り当てて試してみましたがダメでした。 なにかいい方法はございませんでしょうか? Win XP Apache_2.0.59 php-4.4.4

質問者が選んだベストアンサー

  • ベストアンサー
  • magid
  • ベストアンサー率73% (49/67)
回答No.2

Apacheを起動しているユーザではネットワークドライブがマッピングされていないから、ということはありませんか。 もしそうだとすれば、hogehoge.bat を次のように書き換えればうまく行くのではないかと思います。 ECHO hoge > hogehoge.log NET USE F: \\Server1 DIR \\Server1\hoge*.* > C:\hoge\hoge.log

calltella
質問者

お礼

ご回答いただきありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

セキュリティ的な問題かもしれませんね。 opendirなどでPHP側で処理をしてみてはいかがですか? http://jp.php.net/manual/ja/function.opendir.php

calltella
質問者

お礼

ご回答いただきありがとうございました。 原因はApacheの管理者権限でした。 サービスで起動しているApache2に管理者権限を与えると動作しました。