exécuter la ligne de commande dos à partir de C #?

J’essaie d’exécuter cette commande à partir de l’invite de ligne de commande:

"D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless" 

Cela fonctionne parfaitement lorsque je le tape dans une console de ligne de commande.

Cependant, lorsque j’essayais de le faire fonctionner à partir d’une application C #, cela a échoué. J’ai essayé de suivre, mais il semble que la commande ci-dessus n’a pas été exécutée:

 ssortingng fijiCmdText = "D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless"; System.Diagnostics.Process.Start("cmd.exe", fijiCmdText); 

Quelqu’un a une idée de comment le changer pour qu’il fonctionne? Merci.

Le problème a été résolu comme indiqué par Chris Haas. Cela ne signifie pas que les autres réponses ne fonctionnent pas, cela signifie simplement que le problème peut être résolu au moins d’une manière.

La voici en ajoutant simplement "/C " dans le code et cela devrait fonctionner:

Original qui n’a pas fonctionné:

 ssortingng fijiCmdText = "D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless"; System.Diagnostics.Process.Start("cmd.exe", fijiCmdText) 

;

Code actuel qui fonctionne:

 ssortingng fijiCmdText = "/CD:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless"; System.Diagnostics.Process.Start("cmd.exe", fijiCmdText); 

Voici la référence mentionnée par Chris Haas. Voir EDIT3

Vous n’avez pas besoin d’exécuter cmd.exe, créez ProcessStartInfo object ProcessStartInfo et transmettez-lui la commande avec ses parameters. Comme ça:

 System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("your command", "parameters"); 

Voici un exemple qui vous montre comment faire:

 System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("tree.com", "/f /a"); System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo = info; p.Start(); p.WaitForExit(); 

Donc, dans votre cas, il s’agit de votre commande: "D:\\fiji\\fiji.exe" et de vos parameters ou arguments de commande: @"-macro D:\\fiji\\macros\\FFTBatch.ijm --headless"

Essaye ça:

 ProcessStartInfo info = new ProcessStartInfo(@"D:\fiji\fiji.exe",@"-macro D:\fiji\macros\FFTBatch.ijm --headless"); Process process = new Process(); process.StartInfo = info; process.Start();