Problem mit Konsolenbefehl
-
G'Day,
wieder einmal muss ich mich an euch wenden
Mein Problem besteht darin, dass ich einen Konsolenbefehl ausführen möchte, es aber nicht funktioniert, obwohl der Befehl so wie er geschrieben ist richtig ist und ich auch sonst keinen Fehler in meinem Code finde:System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo stratInfo = new System.Diagnostics.ProcessStartInfo(); stratInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; stratInfo.FileName = "cmd.exe"; stratInfo.Arguments = "mysqldump -u root -pPASSWORT databasename > \"C:\\Documents and Settings\\BR000009\\Desktop\\databasename.sql\""; MessageBox.Show(stratInfo.Arguments); process.StartInfo = stratInfo; process.Start();
Die MessageBox diente mir nur um zu sehen ob der Befehl wie er in die cmd.exe überführt wird richtig geschrieben ist und das ist er auch.
Am Ende sieht das Befehl so aus:*mysqlsump -u root -pPASSWORT databasename > "C:\Documents and Settings\BR000009\Desktop\databasename.sql"
*
Die Anführungszeichen sind notwendig, da er sonst bei "Documents and Settings" mir ein Error vor die Füße wirft. Habe den Befehl auch in der cmd.exe getestet
(mehrfach) und er funktioniert tadellos.
Ich denke das ein Fehler bei der Befehslausfürung im Programmcode ist, aber ich weiss nicht wo.regards
Snowfey
-
Die Umleitung der Ausgabe ist nicht Teil des Kommandos, sondern eine Funktion der Shell, die so nicht verwendet werden kann.
Stell mal ein /C an den Anfang des Argumentstrings.
-
MFK schrieb:
Die Umleitung der Ausgabe ist nicht Teil des Kommandos, sondern eine Funktion der Shell, die so nicht verwendet werden kann.
Stell mal ein /C an den Anfang des Argumentstrings.
Yeah es geht
Ich danke dir vielmals
-
Wieso der Umweg über die Windowskonsole?
mysqldump
ist doch selber schon ein Programm. Wieso startest du also nicht einfach dieses Programm?
Den Output kannst du auch selber in ein File umlenken. Sieh dir dazuProcess.StandardOutput
an.Grüssli
-
Dravere schrieb:
Wieso der Umweg über die Windowskonsole?
mysqldump
ist doch selber schon ein Programm. Wieso startest du also nicht einfach dieses Programm?
Den Output kannst du auch selber in ein File umlenken. Sieh dir dazuProcess.StandardOutput
an.Grüssli
Auch wieder wahr, ich hatte halt zuerst an die Konsole gedacht, da ich es selbst über die Konsole ausführe. Ich schau mir Process.standardOutput trotzdem mal an, villeicht kann ich meinen Source dmait dann schlanker gestalten.