Kazrakel
Messages postés4Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention14 juin 2007
-
13 juin 2007 à 03:32
Kazrakel
Messages postés4Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention14 juin 2007
-
14 juin 2007 à 02:45
Je vous explique mon problème.
Je dois créer puis exécuter un .bat à partir de mon application C#. Le code (en fin) se compile parfaitement.
Mon .bat se crée bien avec les infos qu'il faut mais ne s'exécute pas correctement. En effet, une fois créé il ne fait pas se qu'il doit faire : je suis obligé de le lancer manuellement ! Je ne vois pas ce qu'il cloche !
Si vous avez des idées, n'hésitez pas !! Merci d'avance.
Le code :
_____________________________________________________________________
fichierBat = File.CreateText(cheminFichierBat); // Creation du fichier
fichierBat.WriteLine("xml2visio.exe " + chemin_install_dir + @"\Stories\LittleRedRidingHood01\LittleRedRidingHood01.xml " + chemin_install_dir + @"\Stories\LittleRedRidingHood01\Visio\test266.vdx"); // Passage à la ligne automatique
fichierBat.WriteLine("exit"); // Passage à la ligne automatique
fichierBat.Close(); // Ferme le fichier
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 13 juin 2007 à 08:11
Hello,
En principe, rien n'empèche le lancement d'un bat.
J'ai fait un petit exemple qui fonctionne :
File.
WriteAllText(
@"C:\temp\test.bat",
@"ECHO test >C:\temp\test.txt");
Process.
Start(
@"C:\temp\test.bat");
Par contre, un process lancé à par défaut comme WorkingDirectory celui de ton application.
Il faut donc peut-être donner le chemin complet vers xml2visio.exe, ou alors changer le WorkingDirectory en utilisant un ProcessStartInfo.
Mais pourquoi fais-tu un bat, tu pourrais sans doute aussi directement lancer le processus xml2visio.exe, non ?
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Kazrakel
Messages postés4Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention14 juin 2007 13 juin 2007 à 12:14
Merci SharpMao pour ta réponse.
J'ai réessayé de faire en sorte de donner le chemin complet de xml2visio.exe mais ça ne marche pas non plus : même chose qu'avant, j'écris bien mon .bat comme il faut mais il ne se lance pas automatiquement donc toujours obligé de le faire manuellement en double-cliquant !
Après pour ta question sur le pourquoi ne pas directement utilisé le xml2visio, ma réponse est "ça ne marche pas". J'ai repris un ancien projet fait par quelqu'un d'autre et apparement il faut passer par le .bat !
Je me dis que je pourrais peut être, une fois le .bat créé, ouvrir l'explorateur Windows directement au dossier contenant le .bat. Mais je ne sais pas trop comment m'y prendre pour lui dire où il doit s'ouvrir (par exple directement sur D:\Truc\Muche)
Pour ouvrir l'explorer, il faut faire : Process.Start("explorer.exe") mais après ????
Kazrakel
Messages postés4Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention14 juin 2007 13 juin 2007 à 22:35
Merci beaucoup pour ton aide SharpMao.
Ca marche pratiquement parfaitement . En effet, il reste un petit problème.
Je m'explique : quand le chemin de mes fichiers utilisés comporte des espaces, ça ne marche plus ! Je pense que la présence d'un espace fait que après ça change d'arguments. Il faudrait que je les mette entre guillemets pour que ça marche à tous les coups mais je ne sais pas comment faire.