Autor Beitrag
ErikLange
Hält's aus hier
Beiträge: 11

Win 7
C# (VS 2008)
BeitragVerfasst: Mi 28.04.10 13:17 
Hallo,
ich bin noch Anfänger in C# und hab dazu eine Frage.
Meine Aufgabe ist es 3 Programme über die Windowskonsole zu starten, das war kein Problem. Die 3 Programme sind alles Tester für CPU, Festplatte und Netzwerkgeschwindikeit. Um sie zu starten gebe ich einfach in der Console
zB: rdfc.exe datei.txt 1 GB
ein. (das hieße er soll mit dem Programm rfdc eine Datei namens Datei.txt der Größe 1GB erstellen)

Als Ergebnis kommmt dann heraus:
Programmwerbung...
1.00GB written to "datei.txt" in 43sec. <ca. 34.00MB/sec>

ich denke mal, das ist soweit verständlich.
Nun muss ich diese Eingabe 5mal wiederholen lassen und jeweils die Zeit herausfinden, sodass ich nach 5 Versuchen den Mittelwert errechnen kann.

Meine Idee war nun eine C# Consolenanwendung zu schreiben, die diese Sachen für mich erledigen soll.
Ich hab schon einige Übungen mit C# gemacht, jedoch ging es dabei nie um andere Programme, habe heute auch bestimmt schon 4h gegooglet, aber nichts dazu gefunden, da ich auch nicht richtig weis wonach ich suchen soll.

Also meine Fragen wären:
1. Kann ich über eine C# Consolenanwendung die Windowskonsole starten und mit ihr eine Anweisung ausführen?
2. Kann ich das Ergebnis irgendwie ausschneiden, sodass ich es zur weiteren Berechnung benutzen kann?

Vielen Dank im Vorraus!

PS: Ich hoffe ich hab die Forumsstruktur verstanden und es ist im richtigen Forum drinne.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 28.04.10 13:41 
Hallo und :welcome:,

die Klasse die du suchst heißt Process. Bei MSDN gibt es auch Beispiele wie du sie Anwenden kannst - wie zu fast jeder Klasse des .NET-Frameworks.

Du kannst dir über die Eigenschaft StandardOutput den Ausgabestream des Prozesses umleiten. Für Beispiele siehe wieder MSDN.

Wenn du also die Ausgabe komplett als String vorliegen hast musst du diesen verarbeiten um an die gewünschte Informationen ran zu kommen. Dafür gibt es verschiedene Möglichkeiten. Die Klasse string bietet selbst viele Methode um Teile heraus zu filtern. Wenn es komplizierter wird, kannst du auch Reguläre Ausdrücke verwenden. Dabei wird ein string anhand von sogenannten Patterns zerlegt. Reguläre Ausdrücke sind Programmiersprachenunabhängig. Für .NET heißt die implementierte Klasse Regex.

Gruß
ErikLange Threadstarter
Hält's aus hier
Beiträge: 11

Win 7
C# (VS 2008)
BeitragVerfasst: Mi 28.04.10 14:04 
Hey das klingt doch schonmal super!
Ich werde zwar ne Weile brauchen bis das alles funktioniert, aber mit den ganzen Beispielen dürfte das schon klappen.
Danke dir vielmals =)