簡體   English   中英

使用Apache Webserver從Python CGI文件運行.bat文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM