Bonjour,
J'utilise fréquemment la fonction system() sous unix sans problème. Elle me pose des problèmes sous windows (appel de cmd.exe), car j'ai des blancs (white spaces) dans mes chemins et j'ai des arguments à rajouter. Je m'explique :
Supposé que je veuille lancer "d:\mon repetoire\mon appli.exe" cinq fois avec un argument à chaque fois différent, comme par exemple :
"d:\mon repetoire\mon appli.exe 1.0"
"d:\mon repetoire\mon appli.exe 2.0"
"d:\mon repetoire\mon appli.exe 3.0"
"d:\mon repetoire\mon appli.exe 4.0"
"d:\mon repetoire\mon appli.exe 5.0"
Je reconstruits bien ces chaines de str dans une boucle que je passe à chaque fois à system(), avec les guillemets au début et à la fin, mais ca ne marche pas. En revanche, j'arrive bien à faire marcher ca si l'appli est lancée à chaque fois sans argument.
En regardant la doc de cmd.exe, je vois bien que windows (par rapport à unix), se complique pas mal les pinceaux avec les guillemets. J'ai bien alors essayé de lancer plus explicitement "cmd.exe \S \C ..", mais ca ne marche toujours pas.
J'ai également essayé des trucs comme :
"d:\mon repetoire\mon appli.exe" "1.0", etc.
Mais rien n'y fait.
Quelqu'un aurait une idée ?
D'avance merci pour toute aide sur ce point.
Cordialement, Eric.
Partager