2 votes

Comment exécuter un fichier batch à partir de C# ?

(Voir la fin pour la solution)

Je ne pensais pas que ça allait être difficile. J'ai un fichier de commande, D : \a.cmd qui contient :

copy /b d:\7zS.sfx + d:\config.txt + d:\files.7z d:\setup.exe

Mais ces lignes de C# ne l'exécuteront pas :

Process.Start("d:\\a.cmd");
Process.Start("cmd", "/c d:\\a.cmd");

Lance une Win32Exception : "%1 n'est pas une application Win32 valide".

Process.Start ouvre les fichiers .pdf... pourquoi pas les fichiers de commande ?

Cela fonctionne si je le tape dans une fenêtre cmd :

cmd /c d:\a.cmd

Windows XP, MS Visual Studio 2008.

Merci d'avance, Jim

SOLUTION Je ne suis que légèrement gêné :( Il y avait un fichier nommé cmd.exe, de taille zéro dans le répertoire de mon application. Je n'ai aucune idée de comment il est arrivé là mais il est maintenant grillé et les deux instructions C# ci-dessus fonctionnent maintenant. Je vais chercher un livre de Harry Potter pour que Dobby me donne des idées d'auto-punition...

0voto

Mark Schultheiss Points 13110

Hmm essayer :

System.Diagnostics.Process myproc = new System.Diagnostics.Process();
myproc.EnableRaisingEvents=false;
myproc.StartInfo.FileName="d:\\a.cmd";
myproc.Start();
MessageBox.Show("did the command");

0voto

kenny Points 9150

Avez-vous testé votre fichier batch dans le répertoire, contexte dans lequel il va s'exécuter ? Le message d'erreur avec %1 semble indiquer que le problème se trouve à cet endroit ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X