création de fichier batch (newbie !) - Programmation
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...
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]
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 ...
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...
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
Marsh Posté le 16-01-2002 à 13:21:37
J'a essayé. Ca va pas trop car on fabrique des fichiers .pdb.z
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.
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 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 ?
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 ...
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.
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 ... 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
ps: tu fais koi ds la chimie ?
Marsh Posté le 16-01-2002 à 18:19:58
C:\boss42\conversion\autozmat.exe -i pdb *.pdb > *.z ça marche pas ?
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 ...
Marsh Posté le 17-01-2002 à 04:55:44
Il faut doubler les % quand on veut faire un for dans un fichier batch.
Code :
|
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).
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?
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é . Toujours trop pressé..
Il me semble que l'instruction do va jusqu'au bout de ligne => on peut en mettre une "tartine".
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.
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 ...
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.
|
merci ma poule cai impec ...ca roulaize grave !
Marsh Posté le 17-01-2002 à 11:12:09
quetquet a écrit a écrit : merci ma poule cai impec ...ca roulaize grave ! |
De rien ma lootre?
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
ps : mon mail pour le prog -> quetquet59@hotmail.com
thxxxxxxxxxxxxxxxxx
re-ps : tu taffes ou ds la chimie ????????????
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 !!!!
ps : m'en voulez pas chui etudiant en chimie, pas en info