Lesen Batch, shell-Skript Ausgabe in C# .Net-Programm
Für ein Projekt Baue ich ein neues front-end für eine alte Batch-script-System. Ich habe mit Windows XP und C# mit .Net. Ich will nicht zu berühren Sie das alte Backend-system, wie es ist gestaltete in den vergangenen zehn Jahren. Also meine Idee ist der start der cmd.exe
- Programm, und führen Sie die Bash-script drin. Für diese verwende ich die "system" - Funktion .Net.
Aber ich muss auch Lesen Sie die "Batch-Skript Kommandozeilen-Ausgabe" zurück in mein C# - Programm. Könnte ich es umleiten in eine Datei. Aber es muss ein Weg, um die Standard-Ausgabe aus CMD.exe
in mein C# - Programm.
Vielen Dank!
- durch
Bash
, meinst duBatch
? - bash ist eine unix-shell.
- Ich denke, W_P, weiß das.
- Könnte sein, aber der OP schrieb doch bash und shell-script-mehrere Male, so nehme ich es wir reden eigentlich über bash. Ich denke, eine Klärung ist in Ordnung.
- vielen Dank alle , die sich geändert haben , seine windows-cmd-Batch, keine linux-Bash-Skript!
- Vielen Dank für die Klarstellung. Bitte siehe meine aktualisierte Antwort.
- möglich, Duplikat der gewusst Wie: Ausführen Befehlszeile in C#, get STD mit den Ergebnissen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angesichts der aktualisierten Frage. Hier ist, wie können Sie starten
cmd.exe
zum ausführen einer batch-Datei und erfassen Sie die Ausgabe des Skripts in eine C# - Anwendung.Deine Wege sind gut. Aber erhalten Sie nur die gesamte Ausgabe am Ende. Ich wollte die Ausgabe, wenn das Skript ausgeführt wurde. Hier ist es also, zunächst ziemlich das gleiche, aber als ich twised die Ausgabe.
Wenn Sie Probleme haben, schauen Sie unter:
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx
Etwas ab, aber was auch immer Sie auf die Idee kommen...
Den DoSomething ist diese Funktion:
Hoffe, das Hilft
BeginOutputReadLine()
wird auch benötigt.Können Sie nicht erfassen Sie die Ausgabe mit der
system
Funktion, die Sie haben, um ein bisschen tiefer in die Teilprozess-API.Sie scheinen verwirrt, als ob Sie versuchen, führen Sie eine bash-Skript oder eine batch-Datei. Diese sind nicht die gleichen Ding. Bash ist eine unix-shell, die mehrere Windows-ports gibt. "Batch-Datei" ist der name Häufig gegeben cmd-Skripts. Der code oben geht davon aus, dass Sie ausführen möchten, ein bash-Skript. Wenn Sie möchten, führen Sie ein cmd-Skript, ändern Sie
bash
zucmd
. Wenn Sie möchten, führen Sie eine bash-Skript undbash.exe
ist nicht auf IhremPATH
ändernbash
auf den vollständigen Pfad zubash.exe
.