[Shell/Batch] Comment faire des boucles ?

Comment faire des boucles ? [Shell/Batch] - Shell/Batch - Programmation

Marsh Posté le 20-02-2006 à 13:44:42    

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


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

Reply

Marsh Posté le 20-02-2006 à 13:44:42   

Reply

Marsh Posté le 20-02-2006 à 13:45:37    

buffy roulaize :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 20-02-2006 à 13:46:54    

vi lol c un exemple ^^


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

Reply

Marsh Posté le 20-02-2006 à 16:18:29    

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

Reply

Marsh Posté le 20-02-2006 à 17:07:11    

ok v jter un oeil


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

Reply

Marsh Posté le 22-02-2006 à 03:14:05    

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


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

Reply

Marsh Posté le 22-02-2006 à 06:04:41    

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.

Reply

Marsh Posté le 22-02-2006 à 06:34:54    

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.

Reply

Marsh Posté le 22-02-2006 à 09:34:56    

sinon utilise PowrBatch ca t aidera pas mal...

Reply

Marsh Posté le 22-02-2006 à 14:00:53    

merci jv lire tout ca ^^


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

Reply

Marsh Posté le 22-02-2006 à 14:00:53   

Reply

Marsh Posté le 22-02-2006 à 22:28:03    

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

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

Reply

Sujets relatifs:

Leave a Replay

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