2017-04-14 2 views
1

Ich erstelle eine Anwendung in Visual Studio. Wenn der Benutzer auf eine Schaltfläche klickt, möchte ich die Folge CMD Befehl ausgeführt werden:Ausführen von CMD-Befehlen in VB mit Parametern

xcopy /s/y "C:\myfile.txt" "D:\" 

ich das versucht habe, mit Process.Start(), aber es wird nicht funktionieren. Der Tastencode lautet:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Process.Start("CMD", "/C xcopy /s/y "C:\myfile.txt" "D:\"") 
End Sub 

Weiß jemand, wie ich diese Arbeit machen kann? Ich vermute, dass das Problem durch die/s/y-Parameter oder Anführungszeichen im CMD-Befehl verursacht wird.

Antwort

3

Ihr Code wird nicht kompiliert: Sie müssen die doppelten Anführungszeichen in der Zeichenfolge zu vermeiden. In VB.NET entkommen Sie mit doppelten doppelten Anführungszeichen:

+0

Das funktioniert gut, danke! Das Eingabeaufforderungsfenster bleibt jedoch nach dem Klicken auf die Schaltfläche geöffnet. Weißt du, wie ich das nach dem Ausführen der xcopy automatisch schließen kann, etwas wie der Befehl zum Beenden oder noch besser, zeige dem Benutzer den CMD-Bildschirm überhaupt nicht? – elton73

+0

@ elton73: 'xcopy /?' –

+0

@ elton73: Siehe [** this **] (http://stackoverflow.com/a/12477832/3740093), und füge auch '& exit' vor dem letzten Zitat hinzu. –

Verwandte Themen