这可能很容易。但它只是不适合我。
我有一个我想运行的.bat文件,它在服务器上运行,并且应该发送带有附件的电子邮件。
.bat文件工作正常,它会发送包含日志和所有内容的电子邮件。
现在我想从Web服务器运行该文件。这样我就可以点击一个HTML表单按钮,然后执行它。
我已经安装了Apache,Python 2.7。
我已经将Apache配置为允许cgi文件,当我将文件作为index.py放入以下代码时,它就可以工作。
但是当我按下提交按钮时,它会通过,但是.bat文件没有被执行。救命! :)
我是否有另一种方法可以运行.bat文件来从Web服务器上执行某些操作?先谢谢你。
我尝试将表单中的操作指向.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 :(得分: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)
...