2010-03-28 8 views
4

J'essayais d'exécuter une commande via C#, mais lorsque je lance le code suivant, une fenêtre cmd vide s'ouvre. Le code:L'exécution de la commande DOS via C# ouvre simplement une fenêtre cmd vide

string command = string.Format(@"adb install C:\Users\Mohit\Programming\Android_Workspace\{0}\bin\{0}.apk", appName); 
ProcessStartInfo cmdsi = new ProcessStartInfo("cmd.exe"); 
cmdsi.Arguments = command; 
Process cmd = Process.Start(cmdsi); 

Qu'est-ce qui pourrait ne pas fonctionner? Je suis sûr que la syntaxe est bonne.

Répondre

14

Vous devez ajouter l'argument/c avant votre commande.

L'argument/c indique à la commande processeur pour ouvrir, exécutez la commande spécifiée, puis fermez quand il est fait

string command = string.Format(@"/c adb install C:\Users\Mohit\Programming\Android_Workspace\{0}\bin\{0}.apk", appName); 
ProcessStartInfo cmdsi = new ProcessStartInfo("cmd.exe"); 
cmdsi.Arguments = command; 
Process cmd = Process.Start(cmdsi); 

Pour une liste complète des arguments s'il vous plaît se référer à the documentation for cmd.

+0

Quel est l'argument qui indique au processeur de commande de ne pas fermer quand c'est fait? –

+5

/k Pour une liste complète des arguments, veuillez consulter: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true –