2016-09-07 9 views
2

これは本当に簡単かもしれません。しかし、それだけで私のために働いていない。Apache WebサーバーでPython CGIファイルから.batファイルを実行する

私は実行したい.batファイルを持っています。このファイルはサーバー上で実行され、添付ファイル付きの電子メールを送信する必要があります。

.batファイルは正常に動作し、ログとすべてを含む電子メールを送信します。

私はWebサーバーからそのファイルを実行したいと思います。私はHTMLフォームボタンをクリックすることができ、それが実行されます。

私はApache、Python 2.7をインストールしました。

私はcgiファイルを許可するようにApacheを設定しました。これは、次のコードでindex.pyとしてファイルを置くと機能します。

しかし、[送信]ボタンを押すと処理は終了しますが、.batファイルは実行されていません。助けて! :)

Webサーバーから私のサーバー上のものを行うために.batファイルを実行する別の方法はありますか?あらかじめありがとうございます。

私はそれは私が使用しているコードの下には

を仕事に得ることはありません...の.pyと.cgiのファイルに指示する形でアクションを試してみました。

#!/Python27/python 
#!/usr/bin/env python 
import cgi 
import cgitb; cgitb.enable() 
print "Content-type: text/html" 
print 
print "<html><head>" 
print "<form action='../cgi-bin/send_email.py'>" 
print "<input type='submit' value='Submit'>" 
print "</form>" 

send_email.pyは次のようになります。

#!/Python27/python 
#!/usr/bin/env python 
import cgi 
import cgitb; cgitb.enable() 

from subprocess import Popen 

p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder") 
    stdout, stderr = p.communicate() 

答えて

0

あなたはcmd.exeでバッチファイルを呼び出すことができます。

... 
cmd  = r'c:\Windows\System32\cmd.exe' 
batDir = r'C:\Path\to\batchfolder' 
batName = r'batch.bat' 
p = Popen(r"{0} /C {1}\{2}".format(cmd,batDir,batName), cwd=batDir) 
... 
関連する問題