Hallo,
Es geht im Endeffekt nicht darum eine Exe-Datei auszuführen
sondern ein VBScript, welches auf dem Server liegt. Diese
Scriptdatei ruft nun nacheinander einige Programme auf und
gibt anschließend einen Rückgabewert zurück. Diesen
Rückgabewert soll das Perl-Script nun entgegennehmen und in
einer Variablen speichern.
OK
Am Ende soll das ganze dann so aussehen, dass man auf die
Scriptdatei auf dem Apache-Server über z.B. den Internet
Explorer eines anderen Computers im Intranet zugreift, ihr
einen Namen übergibt, und die Scriptdatei anschließend die
entsprechende Scriptdatei auf dem Server aufruft. Diese führt
dann Tests durch, anschließend wird zurückgegeben ob alles
funktioniert hat. Diesen Rückgabewert vom Typen integer will
ich in Perl dann wiederbekommen und in eine Variable
speichern.
Aha. Das sollte problemlos innerhalb eines CGI-Skriptes zu
machen sein, wenn das Perl-Skript a) in einem CGI-Verzeichnis
liegt (damit Apache es ausführt und nicht anzeigt) und
wenn das Skript in diesem Verzeichnis ausführbare Programme
des Servers überhaupt starten darf (Konfiguration CGI-BIN
in httpd.conf).
Ich hab mal testweise auf einer WinXP-Maschine ein
„Programm“ C:Temp\runme.bat "geschrieben, welches
wie folgt aussieht:
DIR C:\GIBTSNICHT
@ECHO %ERRORLEVEL%
Das rufe ich über ein
perl-Skript in cgi-bin auf, welches so aussieht:
#!perl
use strict;
use warnings;
use IPC::Run3;
use CGI qw':common';
my $q = new CGI;
print $q-\>header, $q-\>start\_html;
my ($in, $out, $err);
my @prg = ( 'c:/temp/runme.bat', 'arg1', 'arg2' );
my $s = run3( \@prg, \$in, \$out, \$err );
print $q-\>h1('status'), $q-\>p($s);
print $q-\>h1('stdout'), $q-\>p($out);
print $q-\>h1('stderr'), $q-\>p($err);
print $q-\>end\_html;
Und das zeigt auch brav
alles an was es soll. Vielleicht kannst Du das
als Startpunkt nutzen?
Grüße
CMБ