[Batch] Renommer + incrémentation

Bonjour a tous !

Je vous explique : je souhaite, grâce a un .bat modifier une centaine de photos contenues dans un répertoire.
Au lieu de les renommer à la main(ou d'utiliser un logiciel pour) j'aimerai le faire avec un batch.

Voila ce que j'ai pu faire :

ren *.jpg Mes_vacs.jpg

Or comme on peut facilement l'imaginer, Windows ne va en modifier qu'une ... en Mes_vacs.jpg ... C'est normal c'est ce que j'ai demandé.

Si quelqu'un pourrai m'aider ce serai sympa !

Merci d'avance à tous ceux qui apporteront une réponse a ma question ...

Guizmo

PS : Jusque comme ça j'ai cherché sur google : pas de réponses pertinentes;
Configuration: Windows XP
Firefox 2.0.0.3

15 réponses

  1. en fait si il s'arrête jusqu'au dernier nombre, en l'occurrence ici "100". Mon problème est qu'il ne renomme pas un fichier qui doit être à "11" car il voit comme déjà existant le fichier numéroté "1" ainsi de suite.
    0
    1. Merci en tout cas pour moi ça marche.
      C'est juste qu'il ne s'arrête pas.
      Faut-il faire un for end ou quelque chose pour qu'il arrête d'incrémenter sans cesse, qu'il s'arrête au moment où il a finit de tous les renommer en fait?
      0
      1. Une solution simple est de créer un fichier bat comme suit:

        ren pict????.jpg pict????_mesvacs.jpg

        où:

        - pict est le préfixe propre à ton appareil préféré;

        - les "?" représente une suite de 4 caractères. Dans mon cas il s'agit du numéro de la photo;

        - "_mesvacs.jpg" est le suffixe que tu souhaites à la place de ".jpg"

        Salut à tous!
        0
        1. Bah ça renomme qu'un fichier ton truc non ?
          0
        2. As-tu essayé, au moins?
          0
      2. bah j'ai mis [...] /L %i [...] MesVacs_%i.jpg et il me dit encore une erreur et mes fichiers tests ne sont pas renommés ...
        0
        1. %i ne marche que lorsque tu tape directement en ligne de commande dans la console dos. si tu veux écrire cette ligne dans un fichier batche, tu dois doubler le signe %, tu devras donc remplacer %i par %%i dans ton fichier.
          0
      3. tu as mis ça?

        @echo off
        color a
        FOR /L %i IN (1,1,54) DO ren *.jpg Mes_vacs%i.jpg
        pause

        alors, attention, ça va te générer des erreurs mais ça va fonctionner quand même.
        0
        1. Eh bien non avec ta derniere technique ça ne marche toujours pas ...
          0
          1. excuse moi pour le "essai>" c'est un copier/coller malheureux! c'est le dossier dans lequel je faisais mes ... essais justement!
            donc a supprimer!
            0
            1. OK j'essaye ça et je te dit si ça marche ... Mais j'ai pas comprit (désolé je suis un peu boulet) mais devant je remplace le essai> par quoi ?
              0
              1. Eh bah non ça ne marche aps ça me met : " i est inattendu"

                Besoin d'aide !
                0
                1. non regarde mon poste un peu plus haut, j'ai fait des essais, et c'est %i qu'il faut mettre à chaque foi, pas i ou %i%

                  je me suis trompé dans le 1er post
                  0
              2. Bon je fais mon chieur mais mieux vaut que je sois sur:

                @echo off
                color a
                FOR /L i IN (1,1,54) DO ren *.jpg Mes_vacs%i%.jpg
                pause

                et voila ?

                Aussi simple que ça ?
                0
                1. comme ceci:

                  essai>FOR /L %i IN (1,1,10) DO ren *.jpg essai%i.jpg


                  "essai"à remplacer avec ce que tu veux et "10" par ton nombre de fichiers

                  cela va générer des erreurs car il tenter de modifier tout les fichiers à chaque fois mais au final le résultat sera là. donc tu peux optimiser.
                  0
                  1. Je te remercie beaucoup mais juste ... Je le met apres mon "ren" ? Ou avant ? ou a la fin de mon code batch (ce qui m'étonnerai ...)

                    Merci pour tes expliquations ! Elles vont faire avancer mon projet !
                    0
                    1. alors j'ai fait un FOR /? pour pouvoir répondre à ta précédente question et donc je vais te répondre maintenant que je le sais!

                      tout d'abord le (1,1,100) s'utilise avec le /L

                      cela sert a faire un compteur numérique (car le for a d'autres applications)

                      dans ce cas -> FOR /L (nombre de départ, pas, nombre de fin)

                      le pas peut être positif ou négatif suivant si tu veux une boucle qui incrémente (1,2,3,4,...) ou qui décrémente (100,98,96,94,...)

                      voilà, j'espère que tu vas t'en sortir avec ça!

                      sinon il existe de très bon soft gratuits de rennomage de fichiers.

                      personnellement j'utilise "Lupas Rename 2000"...

                      0
                      1. Super ! Merci de ta réponse !!! Je vais tester ça et je te redissi ça a marché !

                        Euh en passant si tu peu expliquer a quoi sert le (1,1,100) stp ?
                        0
                        1. qu'on me rattrappe si j'ai tord, mais je crois que tu peux faire une boucle "FOR" pour incrémenter une variable que tu rajoutera à la fin du nom de ton fichier

                          en gros ça doit donner ça
                          FOR /L i IN (1,1,100) DO ren *.jpg Mes_vacs%i%.jpg 
                          


                          ou un truc approchant, je suis pas un maître en commandes DOS...

                          0