| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : création de fichier batch (newbie !) | ||
| quetquet |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| quetquet |
|
| quetquet |
|
| Freekill |
|
| quetquet |
|
| quetquet |
|
| Carbon_14 | 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. |
| Carbon_14 | 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". |
| Freekill | C'est "|" le séparateur à mettre entre chaque action du for ?
Cool, j'apprends quelque chose? |
| Carbon_14 | 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). |
| Freekill | Il faut doubler les % quand on veut faire un for dans un fichier batch.
|
| quetquet |
|
| Je@nb | C:\boss42\conversion\autozmat.exe -i pdb *.pdb > *.z ça marche pas ? |
| quetquet | :sweat: |
| quetquet |
|
| Carbon_14 | 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. |
| quetquet | :cry: |
| quetquet |
|
| Carbon_14 | 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. |
| Carbon_14 | 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 |
| Carbon_14 | 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... |
| darklord22 |
|
| quetquet | Eupe :D |
| quetquet |
[edtdd]--Message édité par quetquet--[/edtdd] |
| JPA | 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... |
| quetquet | 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 ;) |




