[C#] cmd+befehl über c# ausführen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Lash, 4. September 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. September 2009
    cmd+befehl über c# ausführen

    moin, habe folgendes problem:
    würde gerne cmd.exe über c# öffnen, was soweit auch klappt. nur sollen direkt befehle übergeben werden, also das beispielsweise direkt ipconfig ausgeführt wird.
    hintergrund des ganzen ist, ich würde gerne über cmd kopieren um mir den rekursiven kram zu sparen (also den code in c#(durch den ich nich ganz durchblicke)), da ich mit dem prog quasi eine sicherung erstellen möchte.

    beispiel:

    Process.Start("cmd.exe") (und dann das was ausgeführt werden soll zb xcopy)

    mfg

    lash
     
  2. 4. September 2009
    AW: cmd+befehl über c# ausführen

    Code:
    Process.Start("cmd.exe /C " + yourCopyCommand);
    Warum aber den Umweg über cmd? Müsste doch auch direkt gehen:
    Code:
    Process.Start(yourCopyCommand);
    yourCopyCommand ist vom Typ String dann.
     
  3. 4. September 2009
    AW: cmd+befehl über c# ausführen

    irgendwas mach ich falsch, aber was?

    Code:
    Process.Start("xcopy /D /E /Y /I " + @"C:\xampp\ " + @"C:\Users\xxxxx\Desktop\");
    
    
     
  4. 4. September 2009
    AW: cmd+befehl über c# ausführen

    Musst das glaub ich als argument übergeben.

    Code:
     m_Process = New Process()
     With m_Process.StartInfo
     .FileName = "xcopy"
     .Arguments = " /D /E /Y /I " + @"C:\xampp\ " + @"C:\Users\xxxxx\Desktop\"
     .UseShellExecute = False
     .CreateNoWindow = True
     .RedirectStandardOutput = True
     .RedirectStandardError = True
     .RedirectStandardInput = True
     End With
     m_Process.Start()
    
     
  5. 4. September 2009
    AW: cmd+befehl über c# ausführen

    Du kannst nicht Anführungszeichen innerhalb eines Strings verwenden. Du musst Chr(34) verwenden.
     
  6. 4. September 2009
    AW: cmd+befehl über c# ausführen

    Wieso? Er kann sie doch auch einfach mit dem Backslash (\) escapen?!

    greez
     
  7. 4. September 2009
    AW: cmd+befehl über c# ausführen

    Ok ich kenne nur VB.Net. Aber so wie es oben steht, kanns nicht gehen.
     
  8. 5. September 2009
    AW: cmd+befehl über c# ausführen

    In vb.net gehts auch mit "" .

    Aber richtig darüber hab ich garnicht nachgedacht das dies ein Problem sein könnte.

    Wobei kann man die nicht komplett weglassen?
     
  9. 7. September 2009
    AW: cmd+befehl über c# ausführen

    erstmal thx an nash, scheint zu funktionieren aber gibt noch ein kleines problem:

    habs jetzt mal so ausprobier

    Code:
    
    Process prozess1 = new Process();
     prozess1.StartInfo.FileName = "xcopy";
     prozess1.StartInfo.Arguments = " /D /E /Y /I " + @"" + textBox1.Text + "" + @"" + textBox2.Text;
     prozess1.StartInfo.RedirectStandardError = true;
     prozess1.StartInfo.RedirectStandardOutput = true;
     prozess1.StartInfo.RedirectStandardInput = true;
     prozess1.StartInfo.UseShellExecute = false;
     prozess1.Start();
    
    
    wird ausgeführt aber findet keinen pfad, also ungültiger pfad, 0 dateien kopiert.
    egal ob ich den pfad über die textbox einfüge oder einen im code festlege.
    noch jemand ne idee?
     
  10. 7. September 2009
    AW: cmd+befehl über c# ausführen

    Hast du dir mal die Variable prozess1.StartInfo.Arguments ausgeben lassen? Damit lässt sich bestimmt der Pfadfehler lokalisieren.
     
  11. 7. September 2009
    AW: cmd+befehl über c# ausführen

    oh man, da hätte ich auch selbst drauf kommen können, iwie n brett vorm kopf gehabt^^
    hat einfach nur ne leerstelle gefehlt, die beiden pfade waren nicht getrennt.....
    danke!!
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.