création de fichier batch (newbie !)

création de fichier batch (newbie !) - Programmation

Marsh Posté le 16-01-2002 à 11:05:43    

j'ai créé un fichier batch qui utilise un prog pour transformer un fichier .pdb (fichier de coordonnées pour des molecules) en un fichier .z (coordonnées pour des molecules exploitable par un programme bien particulier)
 
le batch est tout simple
 
C:\boss42\conversion\autozmat.exe -i pdb glucose.pdb > glucose.z
 
jusqu'ici tout va bieng ...le truc c'est que je voudrais que ce batch convertisse TOUS les fichiers pdb se trouvant ds le rep et non pas seulement le glucose (sinon a quoi ca sert de faire un batch si c'est pour l'editer a chaque fois que je dois utiliser autozmat hein ?)
 
j'espere que j'ai été clair !!!!
 
 :hello:  
 
ps : m'en voulez pas chui etudiant en chimie, pas en info ;)

Reply

Marsh Posté le 16-01-2002 à 11:05:43   

Reply

Marsh Posté le 16-01-2002 à 11:22:59    

si t'es sous NT ou 2000 (je ne suis pas sur que for fonctionne sous win 9x) :
 
 
for %i in (*.*) do C:\boss42\conversion\autozmat.exe -i pdb %i.pdb > %i.z  
 
A tester bien sur avant de généraliser...

Reply

Marsh Posté le 16-01-2002 à 11:28:51    

JPA a écrit a écrit :

si t'es sous NT ou 2000 (je ne suis pas sur que for fonctionne sous win 9x) :
 
 
for %i in (*.*) do C:\boss42\conversion\autozmat.exe -i pdb %i.pdb > %i.z  
 
A tester bien sur avant de généraliser...  




 
ca a po l'air de marcher ... :(  
 
ps:chui sous 2000
 
edit:
ca donne ca:
 
C:\boss42\conversion>conversion.bat
\boss42\conversion\autozmat.exe était inattendu.
 
C:\boss42\conversion>for \boss42\conversion\autozmat.exe -i pdb i.z
C:\boss42\conversion>
 
 :(

 

[edtdd]--Message édité par quetquet--[/edtdd]

Reply

Marsh Posté le 16-01-2002 à 11:45:22    

Eupe  :D

Reply

Marsh Posté le 16-01-2002 à 11:56:26    

JPA a écrit a écrit :

si t'es sous NT ou 2000 (je ne suis pas sur que for fonctionne sous win 9x) :
 
 
for %i in (*.*) do C:\boss42\conversion\autozmat.exe -i pdb %i.pdb > %i.z  
 
A tester bien sur avant de généraliser...  




 
essaie
 
for %i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %i.pdb > %i.z  
 
Bien sur tu dois te mettre dans le répertorie ou il y a les fichiers pdb ...


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 16-01-2002 à 12:33:13    

Faut que je retrouve mes notes (issues du site), car c'est juste un brin plus compliqué. En effte le %i comporte l'extension donc on veut créer un fichier .pdb.z ce qui ne fonctionne pas.
 
L'"idéal" serait que le autozmat.exe génère des fichiers dont l'extension soit .z, mais comme on sort sur le stdout, ...
 
Si personne ne donne la solution avant, j'essaie de trouver où j'ai fichu le fichier d'info...

Reply

Marsh Posté le 16-01-2002 à 12:52:12    

J'ai essayé (NT4/fenêtre DOS) la solution de Stranger posté le 06-11-2001 à 20:20:42, mais ça marche pas en ligne de commande (avec copy, car ça coïnce sur le %%i).  
 
Sur http://www.houlden.f9.co.uk/msdos/for.htm, il affirment que c'est la bonne méthode si la commande est DANS UN BATCH (moi j'ai essayé en ligne de commande !)...
 
Ce qu'il faudrait faire selon lui est
for %%i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %%i.pdb > %%i.z

Reply

Marsh Posté le 16-01-2002 à 13:21:37    

J'a essayé. Ca va pas trop car on fabrique des fichiers .pdb.z :D  
 
En fait, à la main, il faut taper
for %i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %i > %i.z  
 
ou mettre dans un batch la ligne de commande
for %%i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %%i > %%i.z  
 
Cela créera des fichiers .pdb.z qui faudra ensuite renommer par
rename *.pdb.z *.z
 
Avec 4DOS (shareware), on peut faire ça en direct avec des paramètres "alambiqués". Mais il n'est pas gratuit.
 
Si on précise un chemin dans la redirection, ça peut permettre de ne pas les mélanger
    > c:\convert\%i.z par exemple
 
Sinon, attention à priori aux chemins de plus de 8 caractères (on peut mettre du 8.3), je sais pas si DOS gère tout bien. C'est plus sur, par précaution.

Reply

Marsh Posté le 16-01-2002 à 14:12:22    

CARBON_14 a écrit a écrit :

J'a essayé. Ca va pas trop car on fabrique des fichiers .pdb.z :D  
 
En fait, à la main, il faut taper
for %i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %i > %i.z  
 
ou mettre dans un batch la ligne de commande
for %%i in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %%i > %%i.z  
 
Cela créera des fichiers .pdb.z qui faudra ensuite renommer par
rename *.pdb.z *.z
 
Avec 4DOS (shareware), on peut faire ça en direct avec des paramètres "alambiqués". Mais il n'est pas gratuit.
 
Si on précise un chemin dans la redirection, ça peut permettre de ne pas les mélanger
    > c:\convert\%i.z par exemple
 
Sinon, attention à priori aux chemins de plus de 8 caractères (on peut mettre du 8.3), je sais pas si DOS gère tout bien. C'est plus sur, par précaution.  




 
thx !!:jap:
ca marche pour créer des fichiers *.pdb.z ...c'est deja ca !
mais par contre pour les renommer en *.z ca marche po ...
z'oriez pas une explication a ca ? :??:

Reply

Marsh Posté le 16-01-2002 à 14:34:57    

:cry:

Reply

Marsh Posté le 16-01-2002 à 14:34:57   

Reply

Marsh Posté le 16-01-2002 à 14:40:23    

L'OS, c'est quoi ? 95/98/Me/NT/2000/XP ? Lancement à partir d'une "boîte de dialogue" DOS depuis Windows, ou démarrage sous DOS ? Sous 3.11 ou DOS pur, ça peut pas marcher car 8.3 seulement (pas 8.3.3.3 !)
 
Entre chimistes, faut bien s'entraîder :), l'info est un outil, à peine plus :D :D ...
 
Je suis sous NT4 ici, je peux essayer 95/98SE/Me/2000 ce soir (si j'oublie pas).
 
Quand ça marchera, le rename pourra être dans le batch aussi.

Reply

Marsh Posté le 16-01-2002 à 15:08:51    

CARBON_14 a écrit a écrit :

L'OS, c'est quoi ? 95/98/Me/NT/2000/XP ? Lancement à partir d'une "boîte de dialogue" DOS depuis Windows, ou démarrage sous DOS ? Sous 3.11 ou DOS pur, ça peut pas marcher car 8.3 seulement (pas 8.3.3.3 !)
 
Entre chimistes, faut bien s'entraîder :), l'info est un outil, à peine plus :D :D ...
 
Je suis sous NT4 ici, je peux essayer 95/98SE/Me/2000 ce soir (si j'oublie pas).
 
Quand ça marchera, le rename pourra être dans le batch aussi.  




 
W2K / lancement boite de dialogue dos
le but cai de double-cliker sur le batch pour convertir les fichiers et hop (cai pas pour moi que je fais ces batchs :) )
merci pour ton aide :jap:
 
ps: tu fais koi ds la chimie ?

Reply

Marsh Posté le 16-01-2002 à 16:43:15    

:sweat:

Reply

Marsh Posté le 16-01-2002 à 18:19:58    

C:\boss42\conversion\autozmat.exe -i pdb *.pdb > *.z ça marche pas ?

Reply

Marsh Posté le 16-01-2002 à 22:02:11    

Je@nb a écrit a écrit :

C:\boss42\conversion\autozmat.exe -i pdb *.pdb > *.z ça marche pas ?  




 
cai vrai que cai con mais j'avais po pensé a ca ...
j'essaie demain matin dés que j'arrive et je vous tiens au courant ... :hello:

Reply

Marsh Posté le 17-01-2002 à 04:55:44    

Il faut doubler les % quand on veut faire un for dans un fichier batch.
 

Code :
  1. @echo off
  2. echo -- Conversion en cours --
  3. for %%i in (*.pdb) do autozmat.exe -i pdb %%i > %%i.tmp
  4. echo -- Conversion finie --
  5. echo -- Renommage fichiers --
  6. md tmp
  7. move *.tmp tmp\
  8. cd tmp
  9. ren *.tmp *.
  10. ren *.pdb *.z
  11. cd..
  12. move tmp\*.*
  13. rd tmp
  14. echo -- Renommage fini --
  15. echo -- fin du programme --


 
 :hello:

Reply

Marsh Posté le 17-01-2002 à 09:13:52    

Freekill est très astucieux..
 
J'avais pas vérifié hier apm, mais le rename *.bid.z en *.z, ça marche pas, car seule la "vraie" extension terminale est affectée. La fonction n'avait pas "rouspété". Toujours trop pressé...
 
Sinon, si c'est de l'ASCII pur qui est généré (codes lisibles dans un éditeur de texte, comme les fichiers .MOL), j'ai un programme DOS (#16ko) qui récupère les données du flux d'entrée standard et qui met tout dans un fichier.
 
Pour l'utiliser dans un batch et créer fichiers .z:
for %%i in (*.pdb) do autozmat.exe -i pdb | re_nome %%i z  
 
Il n'accepte que les noms 8.3, les noms trop longs sont troncaturés à 8, les noms à espace sont pas traîtés.
Dispo par mail pour test (source dispo).

Reply

Marsh Posté le 17-01-2002 à 10:16:24    

C'est "|" le séparateur à mettre entre chaque action du for ?
 
Cool, j'apprends quelque chose?

Reply

Marsh Posté le 17-01-2002 à 10:25:50    

Non, mais il récupère les caractères issus de stdout.
 
Le "piping" sous Win32/Console semble compliqué (j'ai regardé hier soir) car ioctl() du DOS n'est plus dans les librairies.
 
Le > redirige vers un port LPT, un fichier, autre. | passe au voisin. Si on fait un filtre, on peut faire  
DIR | filtre > fichier par exemple. Le filtre va traiter les caractères de stdin puis les renvoyer sur stdout.
 
C'est ce que je crois avoir vaguement saisi dans mes débuts de prog C/DOS en 1994, mais suis pas très éclairé :D. Toujours trop pressé..
 
Il me semble que l'instruction do va jusqu'au bout de ligne => on peut en mettre une "tartine".

Reply

Marsh Posté le 17-01-2002 à 10:32:27    

Avec 4DOS, on f(er)ait dans un batch
 
for %%f in (*.pdb) do C:\boss42\conversion\autozmat.exe -i pdb %%f > %@name[%%f].z
 
J'ai pas consulté leur site voir si ça fonctionne sous Win2000. C'était un remplaçant très amélioré de COMMAND.COM. Vu que le DOS faiblit (pour disparaître) selon la volonté de son concepteur, ça augure des difficultés.

Reply

Marsh Posté le 17-01-2002 à 11:10:21    

Je@nb a écrit a écrit :

C:\boss42\conversion\autozmat.exe -i pdb *.pdb > *.z ça marche pas ?  




 
ca marche po ! merci qd meme pour ta contribution ... :hello:

Reply

Marsh Posté le 17-01-2002 à 11:11:02    

Freekill a écrit a écrit :

Il faut doubler les % quand on veut faire un for dans un fichier batch.
 

Code :
  1. @echo off
  2. echo -- Conversion en cours --
  3. for %%i in (*.pdb) do autozmat.exe -i pdb %%i > %%i.tmp
  4. echo -- Conversion finie --
  5. echo -- Renommage fichiers --
  6. md tmp
  7. move *.tmp tmp\
  8. cd tmp
  9. ren *.tmp *.
  10. ren *.pdb *.z
  11. cd..
  12. move tmp\*.*
  13. rd tmp
  14. echo -- Renommage fini --
  15. echo -- fin du programme --


 
 :hello:  




 
merci ma poule cai impec ...ca roulaize grave ! :hello:

Reply

Marsh Posté le 17-01-2002 à 11:12:09    

quetquet a écrit a écrit :

 
 
merci ma poule cai impec ...ca roulaize grave ! :hello:  




 
De rien ma lootre?  :jap:

Reply

Marsh Posté le 17-01-2002 à 11:15:40    

CARBON_14 a écrit a écrit :

Freekill est très astucieux..
 
J'avais pas vérifié hier apm, mais le rename *.bid.z en *.z, ça marche pas, car seule la "vraie" extension terminale est affectée. La fonction n'avait pas "rouspété". Toujours trop pressé...
 
Sinon, si c'est de l'ASCII pur qui est généré (codes lisibles dans un éditeur de texte, comme les fichiers .MOL), j'ai un programme DOS (#16ko) qui récupère les données du flux d'entrée standard et qui met tout dans un fichier.
 
Pour l'utiliser dans un batch et créer fichiers .z:
for %%i in (*.pdb) do autozmat.exe -i pdb | re_nome %%i z  
 
Il n'accepte que les noms 8.3, les noms trop longs sont troncaturés à 8, les noms à espace sont pas traîtés.
Dispo par mail pour test (source dispo).  




 
les fichiers *.pdb (protein data bank je crois...) tout comme les fichiers *.z sont en ASCII ...
donc ca pourrait aussi rulaize avec ton prog ...
même si freekil a pondu un truc pas mal tu peux toujours m'envoyer le prog pour info ...(ca m'embete qd même que ca troncature les fichiers ...tu es chimiste, tu connais les noms de molécules  ;) )
merci a toi  :jap:  
 
ps : mon mail pour le prog -> quetquet59@hotmail.com
thxxxxxxxxxxxxxxxxx  :D  
 
re-ps : tu taffes ou ds la chimie ???????????? :??:

Reply

Marsh Posté le 17-01-2002 à 11:28:04    

Freekill a écrit a écrit :

 
 
De rien ma lootre?  :jap:  




 
:love: :love:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed