VB.Net - Perl-Skript über die Konsole aufrufen

Dey

Banned
Registriert
Mai 2005
Beiträge
1.925
Hey.

Ich stehe vor einem unlösbaren Problem.

Und zwar habe ich eine .Net-Anwendung, welche ein Perl-Skript aufrufen soll.

Da ich nicht die geringste Vorstellung habe, wie ich das Skript direkt aufrufen soll, wollte ich es über die Windows-Konsole machen.

Der Befehl beim manuellen Ausführen lautet >perl "C:\skript.pl"<

Mein VB.Net-Code sieht so aus:

Dim p As New Process
With p.StartInfo
.FileName = "cmd.exe"
.CreateNoWindow = False
.RedirectStandardInput = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.UseShellExecute = False
End With
p.Start()
Dim stdIn As System.IO.StreamWriter = p.StandardInput
stdIn.AutoFlush = True
stdIn.WriteLine("perl " & Chr(34) & "C:\skript.pl" & Chr(34) & System.Environment.NewLine)
p.WaitForExit()

Leider wird das skript nicht ausgeführt und ich bin ahnungslos. Hoffentlich habt ihr nen Tipp.
 
Versuchs mal mit UseShellExecute=true

Wenns nicht geht, versuche es mit dem Aufruf der Perl-Interpreters und Übergabe des Skripts als Parameter:

Process p = new Process();

ProcessStartInfo psi = new ProcessStartInfo("<Pfad zum Per-Interpreter>", "<Pfad zum Skript>");
psi.UseShellExecute = false;
psi.CreateNoWindow = true;

p.StartInfo = psi;
p.Start();

Das ist zwar CSharp, aber nicht wirklich unleserlich, ne? ;)
 
Zuletzt bearbeitet:
Hey.

Danke für die Hilfe. Leider komme ich bisher damit auch nicht weiter.

Mir ist zwar der Aufruf des Perl-Interpreters gelungen, aber ich bekomme das Skript weder durch Übergabe des Pfades als Argument weiter, noch dadurch, dass ich versuche, auf den Standardeingabekanal zuzugreifen und mittels StreamWriter dort die Eingabe zu machen.

Hmm....
 
Gibt es eine Exception? Wenn ja welche? Und der StackTrace von der Exception wäre auch nicht schlecht...
 
Zurück
Oben