Ausführung bat Skript aus C#
Ich versuche, führen Sie ein batch-Skript in ein c-sharp Programm den code, den ich verwende, ist unten gezeigt:
Process proc = new Process();
proc.StartInfo.FileName = "G:\\Media\\Downloads\\print.bat";
proc.Start();
Das Skript ist einfach (für Testzwecke) und enthält eine Zeile:
echo hello > output.txt
Wenn ich das Skript aus dem windows explorer funktioniert es, aber nicht, wenn Sie von der C# - code.
irgendwelche Gedanken?
Auch, wie kann ich die Prozesse, die eine callback-Methode, wenn es fertig ist?
Dank
- Sie können angeben, "funktioniert nicht"?
- Ja sorry, das Skript nicht zu sein scheinen, als die Datei output.txt wird nicht generiert
- Die output.txt mit dem Wort "Hallo" ist nicht im "G:\Media\Downloads" Ordner? Hast du das überprüfen?
- Ja ich doppelt geprüft
- Ihre Datei kann im Ordner bin\Debug
- Ein trick, den ich verwenden als Diagnose - -- setzen Sie diese Zeile in die Datei: cd - > c:\foo.txt Das schreiben wird der name des aktuellen Arbeitsverzeichnis eine Datei, die Sie prüfen können. Ein weiterer Tipp: ändern Sie die cwd in den Ordner des Skripts ein: cd /D "%~dp0"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert gut für mich. Ich vermute, was passiert ist, dass beim ausführen der batch-Datei programmgesteuert, Sie erwarten sind die Ausgabe-Datei erstellt werden in der
Downloads
Ordner, wenn Sie tatsächlich geschaffen, in der Anwendung OrdnerEntweder voll qualifizieren, die Ausgabe-Datei-Pfad in die batch-Datei oder ändern Sie das Arbeitsverzeichnis für die gestartete Prozess, wie folgt:
Als für Ihre Frage über Benachrichtigung erhalten, wenn der Prozess abgeschlossen ist, können Sie die
WaitForExit
- Methode oder dieExited
Veranstaltung auf derProcess
Objekt.