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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell/Batch] Comment faire des boucles ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Shell/Batch] Comment faire des boucles ?

n°1309610
crazyshoot​er
Posté le 20-02-2006 à 13:44:42  profilanswer
 

Bonjour !  :hello:  
 
Voilà mon problème, j'ai un fichier batch qui est censé déplacer et renommer des fichiers une fois que ceux-ci sont dans le répertoire mais le problème est que mon batch est bien trop lourd et qu'il me faudrait inclure des boucles dans celui-ci. Voilà le code :
 

Code :
  1. @echo off
  2. :re
  3. cd "C:\Documents and Settings\CrazyStro\Download\DiVx"
  4. if exist XXX0101.avi goto 0101
  5. if exist XXX0102.avi goto 0102
  6. if exist XXX0103.avi goto 0103
  7. if exist XXX0104.avi goto 0104
  8. if exist XXX0105.avi goto 0105
  9. if exist XXX0106.avi goto 0106
  10. if exist XXX0107.avi goto 0107
  11. if exist XXX0108.avi goto 0108
  12. if exist XXX0109.avi goto 0109
  13. if exist XXX0110.avi goto 0110
  14. if exist XXX0111.avi goto 0111
  15. if exist XXX0112.avi goto 0112
  16. if exist XXX0201.avi goto 0201
  17. if exist XXX0202.avi goto 0202
  18. if exist XXX0203.avi goto 0203
  19. if exist XXX0204.avi goto 0204
  20. if exist XXX0205.avi goto 0205
  21. if exist XXX0206.avi goto 0206
  22. if exist XXX0207.avi goto 0207
  23. if exist XXX0208.avi goto 0208
  24. if exist XXX0209.avi goto 0209
  25. if exist XXX0210.avi goto 0210
  26. if exist XXX0211.avi goto 0211
  27. if exist XXX0212.avi goto 0212
  28. if exist XXX0213.avi goto 0213
  29. if exist XXX0214.avi goto 0214
  30. if exist XXX0215.avi goto 0215
  31. if exist XXX0216.avi goto 0216
  32. if exist XXX0217.avi goto 0217
  33. if exist XXX0218.avi goto 0218
  34. if exist XXX0219.avi goto 0219
  35. if exist XXX0220.avi goto 0220
  36. if exist XXX0221.avi goto 0221
  37. if exist XXX0222.avi goto 0222
  38. goto re
  39. :0101
  40. cd "C:\Documents and Settings\CrazyStro\Download\DiVx"
  41. ren XXX0101.avi Buffy.S01.Episode01.avi
  42. move Buffy.S01.Episode01.avi "C:\Documents and Settings\CrazyStro\Download\DiVx\Buffy.Contre.Les.Vampires.S01.FRENCH"
  43. goto re
  44. :0102
  45. cd "C:\Documents and Settings\CrazyStro\Download\DiVx"
  46. ren XXX0102.avi Buffy.S01.Episode02.avi
  47. move Buffy.S01.Episode01.avi "C:\Documents and Settings\CrazyStro\Download\DiVx\Buffy.Contre.Les.Vampires.S01.FRENCH"
  48. goto re


 
ETC....... ETC........ (je v pa mettre tout le batch non plus) :sweat:  
 
VIVE L'USINE A GAZ  :pt1cable:  
 
Donc en gros ce srait bien que jfasse une boucle pour eviter ces longues et perilleuses lignes de code.
Merci ;)


---------------

mood
Publicité
Posté le 20-02-2006 à 13:44:42  profilanswer
 

n°1309612
kadreg
profil: Utilisateur
Posté le 20-02-2006 à 13:45:37  profilanswer
 

buffy roulaize :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1309616
crazyshoot​er
Posté le 20-02-2006 à 13:46:54  profilanswer
 

vi lol c un exemple ^^


---------------

n°1309741
wackevat
Posté le 20-02-2006 à 16:18:29  profilanswer
 

Regarde l'aide de
for
(for /?)
pour  
for /l

n°1309823
crazyshoot​er
Posté le 20-02-2006 à 17:07:11  profilanswer
 

ok v jter un oeil


---------------

n°1311126
crazyshoot​er
Posté le 22-02-2006 à 03:14:05  profilanswer
 

arf jmen sor pas avec cette boucle FOR :s esske kelkun pe essayer de reprendre mon code et de l'alléger avec une boucle ? Merci ^^


---------------

n°1311130
el muchach​o
Comfortably Numb
Posté le 22-02-2006 à 06:04:41  profilanswer
 

Tu sais qu'il y a des tas d'outils de renommage qui font automatiquement ce que tu veux faire avec ton script ? Par exemple (un parmis d'autres, on les trouves sur clubic), Ant Renamer d'antp, modérateur de ce forum.

n°1311136
wackevat
Posté le 22-02-2006 à 06:34:54  profilanswer
 

crazyshooter a écrit :

arf jmen sor pas avec cette boucle FOR :s esske kelkun pe essayer de reprendre mon code et de l'alléger avec une boucle ? Merci ^^


Poste ta dernière version, même si ça ne marche pas comme il faut.

n°1311178
the big be​n
Posté le 22-02-2006 à 09:34:56  profilanswer
 

sinon utilise PowrBatch ca t aidera pas mal...

n°1311433
crazyshoot​er
Posté le 22-02-2006 à 14:00:53  profilanswer
 

merci jv lire tout ca ^^


---------------

mood
Publicité
Posté le 22-02-2006 à 14:00:53  profilanswer
 

n°1311868
crazyshoot​er
Posté le 22-02-2006 à 22:28:03  profilanswer
 

Bon voilà g utilisé PowerBatch comme tu me las suggéré mais ca tourne toujour pa, jpense ke g des pb dan ma boucle. Voilà mon code :
 

Code :
  1. if not "%os%"=="Windows_NT" goto NT
  2.     if not defined i set i=0
  3.     :re
  4.     set /a i=i+1
  5.         if not defined j set j=0
  6.         :re2
  7.         set /a j=j+1
  8.             cd "C:\Documents and Settings\Bontemps\Mes documents\VIDEO 2"
  9.             if exist XXX0%i%%j%.avi
  10.                 ren XXX0%i%%j%.avi Buffy.S0%i%.Episode%j%.avi
  11.                 move Buffy.S0%i%.Episode%j%.avi "C:\Documents and Settings\CrazyStro\Download\DiVx\Buffy.Contre.Les.Vampires.S0%i%.FRENCH"
  12.         if %j% LSS 22 goto re2
  13.     if %i% LSS 7 goto re
  14. :NT


 
PowerBatch ma généré automatikement les boucles for. Moi ske je voudrai ce srai deux boucles. une pour les saisons (yen a 7) et une pour les episodes (yen a 12 dans la saison1 et 22 dans les otres). Mais le gros problème c le nom des fichiers :  
XXX0101 (saison 1 episode 1)
XXX0722 (saison 7 episode 22) etc..
Donc en gros l'algo donnrait ca suivant ske jve faire:
 
Boucle infini
Pour i compri entre 1 et 7
    Pour j compri entre 1 et 22
        Si le fichier XXX$i$j.avi existe
            renommer XXX$i$j.avi Buffy.S$i.Episode$j.avi
            deplacer Buffy.S$i.Episode$j.avi "C:\Buffy.Saison$j"
        FinSi
    FinPour
FinPour
 
Mais le problème reste le nom de fichier avec un chiffre (il fau un 0 devant pour kil trouve le fichier) et je c pa tro kommen lui faire detecter le 0 (ex: XXXO1O1.avi) :s
 
Merci de m'aider  :sweat: :D
PS : si qqn pouvai me sortir le code ce sré cool :p


Message édité par crazyshooter le 22-02-2006 à 22:30:44

---------------


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

  [Shell/Batch] Comment faire des boucles ?

 

Sujets relatifs
envoyer un mail (shell)[Batch] Expect pour cmd.exe (Win2K Server) sans cygwin
Recuperer un pattern en batchEmpêcher l'arrêt d'un batch par l'utilisateur.
Probleme bisard de fichier batch au démarrageDifference shell Unix et shell Linux
[BATCH] Lister les fichiers d'un dossiershell : bloquer l'éxecution...
Modifier un service windows en batch[Batch] envoi du résultat d'une commande dans un fichier
Plus de sujets relatifs à : [Shell/Batch] Comment faire des boucles ?


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