Se connecter avec
S'enregistrer | Connectez-vous

[batch] Compiler plusieurs fichiers

Dernière réponse : dans Programmation

Bonsoir chers IDNautes,

J'ai pour projet de creer un petit programme batch capable, grace à la commande ftp, de prendre sur mon ftp des fichiers necessaires à l'installation d'un programme.

J'utilise la commande
  1. ftp -s:pass.txt monftp.org

J'aimerai donc compiler mon .bat et mon pass.txt dans le meme exe pour plus de securité.( ou pas :na:  )

[Edit]:
Celà serait-il possible[ok] et par quels moyens?
Et une fois compilé, quel chemin dois-je utiliser dans le code batch pour appeler mon pass.txt ?[ok]

J'espere etre assez clair, merci d'avance =)
Lassé par la pub ? Créez un compte
Expert Programmation

oui mais non :) 
tu ne peux passer que du texte en clair au client FTP, tu es donc bloqué.
Donc, à moins d'avoir un user anonymous limité à la lecture, tu ne pourras pas faire grand chose... à moins de ne faire un faux client ftp en vb (par exemple) qui effectuera directement la connexion et le rappatriement des fichiers.

Nan mais le programme fonctionne, mais ma question est, pour généraliser un peu plus, comment utiliser les fichiers qui sont compilés dans le meme executable que mon .bat ?
Dans Quick Batch Compiler (Programme que j'utilise pour la compilation de mon batch), ils parlent de la variable d'environnement %MYFILES% mais je ne comprend pas ou ils veulent en venir :( 
Quelqu'un pourrait-il m'aider svp?
Expert Programmation

ah ok :) 
Bon, je ne connais pas Quick Batch Compiler, mais je présume que %MYFILES% est en fait le répertoire courant (ou répertoire d'exécution) de ton .bat.

Donc, les chemins dans ton .bat doivent être relatifs à %MYFILES%, e qui donne:
toto.exe dans le répertoire courant:
%MYFILES%\toto.exe

Vi c'était ça merci bcp =) En fait ça y étais sur le site du logiciel mais alors c'est aussi bien indiqué que dans le *** d'une huitre ><.
Dis moi, tu ne connaitrai pas un moyen de faire la meme chose mais avec un autre logiciel ? Ou par une méthode quelconque ?
Merci d'avance =)
Expert Programmation

Que veux tu faire exactement?
Si c'est un simple programme pour récupérer des fichiers sur un ftp et les lancer, tu peux créer un .exe en vb, en utilisant l'objet shell.
Mais si je puis me permettre une suggestion: il n'y a aucun interet à utiliser le ftp si c'est uniquement de la lecture, l'accès http est tout aussi valable et t'évite pas mal de soucis (essentiellement les risques de "vol" des accès).

même si tu compiles ton bat ou quoi que ce soit d'ailleurs, le mot de passe restera en clair s'il est en clair au départ.
ce que tu peux faire, c'est protéger ton fichier, l'équivalent du chmod 600 sous unix (lecture, ecriture mais seulement pour toi)
ou alors une méthode de générer ton mot de passe à l'interieur d'un programme
bref de toute façon, le mot de passe passe en clair sur le réseau :) 
apres si c'est juste une question d'avoir un seul fichier, écris le mot de passe dans le .bat

Ftp m'est utile non seulement car je ne connais que batch :lol: 
De plus il y a aussi un upload (log de l'installation pour les erreurs).

Et pour ce qui est de la securité j'entendais que si c'est compilé en .exe on ne peut pas ouvrir le pass.txt directement et avoir les coordonnées de mon ftp (Pareil si je met mon mdp dans le .bat, il suffira alors de l'ouvrir avec notepad pour y avoir acces :(  )

Si quelqu'un sait donc comment compiler plusieurs fichiers (dont un batch en l'occurence) dans un meme exe, sans quick BFC...

Merci d'avance
Expert Programmation

franchement, j'en reviens à mon idée: se faire un executable en vb.
les composants FTP existent déjà, et le langage est au moins aussi compréhensible que le le batch.

Au cas où, explique plus profondémment ton besoin sur le forum de mon site, on doit pouvoir te faire une aide personnalisée assez rapidement (coca, tu maitrises le VB que tu nous as dit? :D  )

@crazycat: si si ca passe en clair et c'est pas le seul, pop, telnet etc...
pour ce qui est du vb, je m'y connais plus ou moins mais ca commence a faire un bout de temps que j'y ai pas touché :) 

@dushmol: si tu veux obligatoirement le passer en exe, normalement une fois le fichier inclus, ta commande devrait etre:
  1. ftp -s:%MYFILES%\pass.txt monftp.org


sinon juste pour info, avec de simple utilitaire voila ce qu'on peut sortir d'un executable:

  1. $ more.com essai.c
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int main ()
  7. {
  8. char *pass="motdepasseenclair";
  9. printf ("toto\n");
  10. return 0;
  11. }
  12.  
  13.  
  14. $ gcc essai.c -o essai
  15.  
  16.  
  17. $ strings.exe essai.exe
  18. %x@@
  19. C@@0@
  20. $ @
  21. motdepasseenclair
  22. toto
  23. __main
  24. _impure_ptr
  25. calloc
  26. cygwin_internal
  27. dll_crt0__FP11per_process
  28. free
  29. malloc
  30. printf
  31. realloc
  32. GetModuleHandleA
  33. cygwin1.dll
  34. KERNEL32.dll


le mot de passe n'est pas si caché que ça. ;) 
le plus simple serait de configurer le ftp pour ne pas permettre l'acces n'importe où.
ou encore de ne permettre que l'ecriture et d'envoyer par exemple le log par mail ou autre

Merci bien, mais je dois pas etre très clair lol...

On reprend:

-Je ne souhaite pas faire de VB ou autres ==> BATCH
-J'ai compris la variable d'environnement %MYFILES%/xxxx.xx
-Je souhaite simplement savoir comment inclure Plusieurs fichiers dans un Executable.

Merci d'avance

dans quick batch file compiler, tu as 3 onglets, tu ouvres ton source:
- tu cliques sur le 3eme onglet "include"
- tu cliques sur le +
- tu selectionnes le fichier pass.txt
- vérifies que tu as utilisé %MYFILES%\pass.txt (\ et non /)
- tu compiles le tout
- tu exécutes

ah la, je sais pas trop, je connaissais un programme qui permettait de rendre un batch en exe (bat2exe je crois msdos 5 ou 6) mais je pense pas qu'il permettait d'inclure des fichiers externe.

maintenant si le but c'est de fournir une install sous un seul fichier (on sait jamais :) ), si tu peux te passer du ftp, tu peux utiliser le programme iexpress
Expert Programmation

un .bat n'est pas un .exe, et n'a absolument rien à voir... c'est pour ça qu'il te faut un programme pour convertir ton .bat en source c (en faisant par exemple un appel à system("tout le code batch");
Ensuite, pour ce qui est du mot de passe en clair lancer un exe est aussi peu sûr qu'un .bat (disons qu'il faut penser à lire l'exe).

Bref, pour faire une telle conversion d'un .bat en .exe, il te faut un programme particulier ou programmer toi-même (auquel cas, je te suggère d'utiliser une lib permettant la connexion FTP).
Et puis, ne peux-tu pas te passer de ton fichier externe ?

Bon, merci pour tous vos conseils et suggestions, non je ne peux me passer d'aucun de mes fichiers, je voulais simplement savoir comment compiler plusieurs fichiers dont un batch dans un exe, sans QuickBFC...
En revanche si quelqu'un avait par hasard une réponse claire (qui ne necessite aucune études superieures (j'ai 15 ans) quant à sa compréhension) en rapport avec ma question je le remercierait d'avantage!

Merci bien :pt1cable: 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde