[英]Run a .bat file from a Python CGI file with Apache Webserver
這可能真的很容易。 但是它對我不起作用。
我有一個要運行的.bat文件,該文件在服務器上執行操作,並應發送帶有附件的電子郵件。
.bat文件工作正常,它發送帶有日志和所有內容的電子郵件。
現在,我想從Web服務器運行該文件。 這樣我就可以單擊HTML表單按鈕,它就會執行。
我已經安裝了Apache,Python 2.7。
我已經將Apache配置為允許cgi文件,並且當我使用以下代碼將文件作為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()
您可以使用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)
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.