친절히 도와주세요. 제 요구 사항은 웹상에서 Apache를 통해 호스팅되는 웹 페이지 양식에서 선택한 매개 변수를 기반으로 실행해야하는 DOS 배치 스크립트가 거의없는 VM이 있다는 것입니다.아파치에서 실행중인 cgi를 사용하여 VM에서 실행하기위한 dos 배치 파일 호출하기
나는 VM에서 실행중인 아파치, & 웹 페이지 양식을 다른 PC의 브라우저를 통해 호출했습니다. 양식을 제출할 때 perl로 작성된 .cgi를 호출합니다.
그 .cgi에서 VM에서 실행될 일괄 처리 스크립트를 호출하고 싶습니다.
1 단계 : 가 HTML 양식 :
form action="/cgi-bin/tasks.cgi" method="POST" target="_blank"
2 단계 :
파일 tasks.cgi
에서이 [위치를 아래
"C:\events.bat"
dos 배치를 호출하려고합니다.
C:\events.bat
의 명령이 VM에서 실행됩니다. 이것이 가능한가?
나는 system
, exec
, qx
,``을 시도했지만 아무 것도 .bat 파일을 호출하지 않은 것 같습니다.
진행 방법을 알려주십시오.
감사합니다, Prasanth
tasks.cgi은 다음과 같습니다
#!perl
local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else {
$buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$proc = $FORM{proc};
############## PLEASE HELP IN THIS SECTION-BEGIN ############################
system("C:\\events\.bat");
############## PLEASE HELP IN THIS SECTION-END ############################
print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>The chosen process is being executed</title>";
print "</head>";
print "<body>";
print "<h2> Process is $proc</h2>";
print "</body>";
print "</html>";
1;
시스템 ("% ComSpec %/c \"C : \\ events \ .bat \ "")을 사용해 보셨습니까? 그러면 cmd.exe/c "c : \ events.bat"'가 실행됩니다. –
이것은 바보 같은 질문 일지 모르지만 귀하의 게시물 어디에도 VM 웹 서버가 Windows에서 실행되고 있다고 주장 할 수는 없습니다. 그럴까요? –