[BATCH] rename : préfixe

Résolu
Bonjour,

La commande DOS FOR est compliquée à mon goût. Ca fait plusieurs fois que je me penche dessus et je ne parvient pas à faire ce que je veux.

Mon problème actuellement est que je veux faire un batch ajoutant un préfixe du type "abc - " à chaque dossiers du répertoire courant.

Voila ou j'en suis :

@echo off
echo Renommage

set %PREFIX="abc - "
echo Le prefixe est %PREFIX%

FOR /D %%i IN (*) DO rename * %PREFIX%*

pause


Voila, un coup de main serait le bienvenu!
Configuration: Windows XP
Firefox 2.0.0.4

9 réponses

  1. Contributeur
    Je dirais:
    set %PREFIX="abc -"
    FOR /D %%i IN (*) DO rename %%i "%PREFIX% %%i"
    1. Contributeur
      Dans mon message du vendredi 20 juillet 2007 à 15h39:11 PREFIX est entre guillemets
      :-)
      1. rien à faire, je n'arrive pas à gérer les espaces dans les noms de fichier...

        @echo off
        echo Renommage
        
        set %PREFIX="abc - "
        echo Le prefixe est %PREFIX%
        
        FOR /D %%i IN (*) DO rename "%%i" %PREFIX%%%i
        
        pause


        Quelqu'un a une idée?
        1. Contributeur
          Je parlais de rename ^^ Mais bon maintenant je le saurais :D
          1. t'as pas du voir ça :

            FOR /D %variable IN (ensemble) DO commande [paramètres]

            Si ensemble contient des caractères génériques, alors la correspondance se
            fait sur les noms de répertoires au lieu des noms de fichiers.

            par contre, les espaces dans les noms de fichiers d'origine ne sont pas gérés... j'ai essayé quelques combinaisons avec les double quotes, ça n'a rien donné...
            1. Contributeur
              J'ai regardé la docu de cette commande et ça ne fait pas mansion des dossiers :/
              1. Contributeur
                et pourtant

                Répertoires seulement
                Si le jeu contient des caractères génériques (* et ?), la commande spécifiée s'exécute pour chaque répertoire (au lieu d'un jeu de fichiers dans un répertoire spécifié) qui correspond au jeu. La syntaxe de cette commande est la suivante :

                for /D [%% | %]variable in (jeu) do commande [OptionsLigneCommande]
            2. nikel merci dubcek, ca marche très bien. Ca puvait pas marcher avec '*'.

              s.spark, j'ai pas compris ce que tu voulais dire, mais tu te trompes surement... puisque ça marche.

              Voici donc le batch final :

              @echo off
              echo Renommage
              
              set %PREFIX="abc - "
              echo Le prefixe est %PREFIX%
              
              FOR /D %%i IN (*) DO rename %%i %PREFIX%%%i
              
              pause