Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2993 connectés 

  FORUM HardWare.fr
  Programmation

  création de fichier batch (newbie !)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

création de fichier batch (newbie !)

n°89824
quetquet
Posté le 16-01-2002 à 11:05:43  profilanswer
 

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 ;)

mood
Publicité
Posté le 16-01-2002 à 11:05:43  profilanswer
 

n°89828
JPA
Posté le 16-01-2002 à 11:22:59  profilanswer
 

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...

n°89831
quetquet
Posté le 16-01-2002 à 11:28:51  profilanswer
 

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]

n°89842
quetquet
Posté le 16-01-2002 à 11:45:22  profilanswer
 

Eupe  :D

n°89846
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 16-01-2002 à 11:56:26  profilanswer
 

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
n°89856
Carbon_14
Posté le 16-01-2002 à 12:33:13  profilanswer
 

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...

n°89861
Carbon_14
Posté le 16-01-2002 à 12:52:12  profilanswer
 

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

n°89872
Carbon_14
Posté le 16-01-2002 à 13:21:37  profilanswer
 

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.

n°89883
quetquet
Posté le 16-01-2002 à 14:12:22  profilanswer
 

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 ? :??:

n°89889
quetquet
Posté le 16-01-2002 à 14:34:57  profilanswer
 

:cry:

mood
Publicité
Posté le 16-01-2002 à 14:34:57  profilanswer
 

n°89890
Carbon_14
Posté le 16-01-2002 à 14:40:23  profilanswer
 

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.

n°89904
quetquet
Posté le 16-01-2002 à 15:08:51  profilanswer
 

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 ?

n°89935
quetquet
Posté le 16-01-2002 à 16:43:15  profilanswer
 

:sweat:

n°89983
Je@nb
Kindly give dime
Posté le 16-01-2002 à 18:19:58  profilanswer
 

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

n°90051
quetquet
Posté le 16-01-2002 à 22:02:11  profilanswer
 

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:

n°90103
Freekill
Electron libre…
Posté le 17-01-2002 à 04:55:44  profilanswer
 

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:

n°90129
Carbon_14
Posté le 17-01-2002 à 09:13:52  profilanswer
 

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).

n°90157
Freekill
Electron libre…
Posté le 17-01-2002 à 10:16:24  profilanswer
 

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

n°90166
Carbon_14
Posté le 17-01-2002 à 10:25:50  profilanswer
 

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".

n°90171
Carbon_14
Posté le 17-01-2002 à 10:32:27  profilanswer
 

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.

n°90192
quetquet
Posté le 17-01-2002 à 11:10:21  profilanswer
 

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:

n°90193
quetquet
Posté le 17-01-2002 à 11:11:02  profilanswer
 

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:

n°90194
Freekill
Electron libre…
Posté le 17-01-2002 à 11:12:09  profilanswer
 

quetquet a écrit a écrit :

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




 
De rien ma lootre?  :jap:

n°90196
quetquet
Posté le 17-01-2002 à 11:15:40  profilanswer
 

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 ???????????? :??:

n°90202
quetquet
Posté le 17-01-2002 à 11:28:04  profilanswer
 

Freekill a écrit a écrit :

 
 
De rien ma lootre?  :jap:  




 
:love: :love:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  création de fichier batch (newbie !)

 

Sujets relatifs
[C++] Pourquoi la taille de fichier sous Win9X et WinNt est différente[Delphi] pb d'ouverture de fichier avec un TFileStream
[JAVA] Création d'une classe Border avec Swing[batch] détruire fichier s'il n'existe pas déjà à un autre endroit...
[newbie] site web en flash?[Java] Newbie : applet marche dans JBuilder mais pas dans IE...
c lecture dans un fichier[batch] créer un fichier log
Plus de sujets relatifs à : création de fichier batch (newbie !)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR