2016-09-07 2 views
2

이것은 매우 쉽습니다. 하지만 그게 나를 위해 일하지 않습니다.Apache Webserver를 사용하여 Python CGI 파일에서 .bat 파일을 실행하십시오.

나는 실행하고 싶은 .bat 파일을 가지고 있는데, 이는 서버에서 작업을 수행하며 Attachement가 포함 된 전자 메일을 보내야합니다.

.bat 파일은 정상적으로 작동하며 로그와 모든 내용이 포함 된 전자 메일을 보냅니다.

이제 웹 서버에서 해당 파일을 실행하고 싶습니다. 그래서 HTML 폼 Button을 클릭하면 실행됩니다.

Apache 용 Python 2.7을 설치했습니다.

나는 cgi 파일을 허용하도록 Apache를 구성했으며, 다음 코드로 파일을 index.py로 넣을 때 작동합니다.

그러나 제출 단추를 누르면 진행되지만 .bat 파일은 실행되고 있지 않습니다. 도움! :)

웹 서버에서 내 서버의 내용을 처리 할 수있는 .bat 파일을 실행할 수있는 또 다른 방법이 있습니까? 미리 감사드립니다.

나는 그것이 내가 A가 사용 된 코드 아래

를 작동시킬 수 없습니다 ... .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) 
... 
관련 문제