Ecriture dans un fichier.bat

cs_mohken Messages postés 8 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 6 octobre 2005 - 5 oct. 2005 à 07:47
cs_mohken Messages postés 8 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 6 octobre 2005 - 6 oct. 2005 à 06:18
Bonjour,
j'ai un problème d'écriture dans un fichier .bat
J'utilise ces lignes de code:

char commande [ 50 ]; // tableau contenant la commande a envoyer
FILE * temp1 = fopen ( "C:\\Temp\\temp1.bat" , "w" );
strcpy ( commande , "ping " ); //
strcat ( commande , ip ); // insertion de l'ip envoyé en parametre dans la commande
strcat ( commande , " -n 1 -i 1 -w 1 > temp1" ); // insertion des paramètres envoyé avec la commande ping

fwrite( commande , sizeof ( char ) , 50 , temp1 );
system(commande);
fclose ( temp1 );

Lorsque je ferme temp1 et que je vais l'éditer je trouve la ligne suivante dans le fichier :
楰杮ㄠ⸰㌲⸵ㄱ⸴㘱‸渭ㄠⴠ⁩‱眭ㄠ☠瑧※整灭1

Si quelqu'un pouvait me dire quel est le problème ( Font?, écriture?...)
Merci d'avance

9 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
5 oct. 2005 à 10:52
Essaye deja ave un exemple simple :

FILE *fp;
char commande[50];

strcpy(commande, "ping 127.0.0.1 -n 1 -i 1 -w 1 > temp1.txt");

fp = fopen("C:\\Temp\\temp1.bat", "w+t");
fwrite(fp, strlen(commande), 1, fp);
fclose(fp);

Shell
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
5 oct. 2005 à 10:57
char *Tab = new char[5]; // tableau contenant la commande a envoyer
const char *ip = "127.0.0.1";//je met ca pour tester
FILE * temp1 = fopen ( "lala.txt" , "w" );
char *cCom = strcpy (Tab , "ping ");//creer la chaine cCom, sur 5 chars
char *cCatCom = strcat (cCom, ip); //on concatene les 2 str, pour l'ip tu fera un tableau
size_t szText = strlen(ip);//récupere la taille de l'ip
fwrite(cCatCom, sizeof (char), 5+szText, temp1);//ici, je dis que la taille fait la taille du ping+la taille de l'ip , sans oublier le " "
fclose (temp1);
delete temp1;//libere la memoire
delete Tab;//idem
system(cCatCom);//envoi ta commande


Si t'a un soucis n'hésite pas...
@+;
satellite34
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
5 oct. 2005 à 11:12
yopela,

je m' immice ici:
DeathCrash, j'ai testé par curiosité ton bout de code et dans un .txt, ca ne marchouille pas; les chars se retrouvent encodés;
As-tu une explication?? linux-windows???


Sinon, mohken, désolé , j'ai merdouillé, je delete le tab avant d'envoyer la commande et ca c pas bon du tt; aîaîaî

Correction viteuf:

char *Tab = new char[5]; // tableau contenant la commande a envoyer
const char *ip = "127.0.0.1";//je met ca pour tester
char *cCom = strcpy (Tab , "ping ");//creer la chaine cCom, sur 5 chars
char *cCatCom = strcat (cCom, ip); //on concatene les 2 str, pour l'ip tu fera un tableau


size_t szText = strlen(ip);//récupere la taille de l'ip


FILE * temp1 = fopen ( "lala.txt" , "w" );//Ouvre le fichier texte


fwrite(cCatCom, sizeof (char), 5+szText, temp1);//ici, je dis que la taille fait la taille du ping+la taille de l'ip , sans oublier le " "
fclose (temp1);
delete temp1;//libere la memoire


system(cCatCom);//envoi ta commande


delete Tab;

DeathCrash, répond moi car si ca fonctionne sous lin et pas sous win, c'est assez mystique et j'aimerai comprendre;Merci



@+;
satellite34
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
5 oct. 2005 à 11:26
bon allé, aprés j'arrete;
voila un bout de code qui marche et qui est court


char commande[50];
char *cCom = strcpy(commande, "ping 127.0.0.1");


FILE *fp = fopen("lala.txt", "w+t");
fwrite(cCom, sizeof (char),strlen(cCom), fp);


fclose(fp);


system(cCom);

DeathCrash--->t'a vu ce que tu write????
@+;
satellite34
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 oct. 2005 à 13:59
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
5 oct. 2005 à 20:49
bonsoir,



c'est vrai, satellite, il veut mieux que tu arrêtes....

Parce tes morceaux de code sont, comment dirais-je, euh, c'est un peu du n'importe quoi...


Matt...
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
5 oct. 2005 à 21:33
Hola,

oui c'est un peu , lol, cependant ce que je disais etait bien vrai et le dernier code est le bon;
enfin, j'ai pas eu la réponse a ma question;
E t si t'a mieu a lui proposer, je t'en prie !!
Je me suis réveiller avec ce truc et si j'ai commis des erreurs je m'en excuse, j'ai corrigé donc, dieu me pardonnera;
Allé propose au lieu de critik sur un forum !!!!!!!
@+;
satellite34
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
5 oct. 2005 à 21:50
bonsoir,



quand je vois ca :



char *Tab = new char[5]; // tableau contenant la commande a envoyer

const char *ip = "127.0.0.1";//je met ca pour tester

char *cCom = strcpy (Tab , "ping ");//creer la chaine cCom, sur 5 chars

char *cCatCom = strcat (cCom, ip); //on concatene les 2 str, pour l'ip tu fera un tableau


ca me fais un peu peur.



j'ai proposé un truc dans un post précédent mais il fait du multipost et j'arrive pas à suivre, désolé.


Matt...
0
cs_mohken Messages postés 8 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 6 octobre 2005
6 oct. 2005 à 06:18
Merci à vous tous !!
Et Matt67, je ne fais du multipost, ce qu'ici c'est un sujet différent !! Mais bon, merci quand même aller salut !
Mohken
0
Rejoignez-nous