IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Renommer en masse [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut Renommer en masse
    Bonjour,

    J'ai un dossier contenant 2350 autres dossiers nommés : P00000, P00016, P00020, .... P02457.

    J'aurais besoin de les renommer en insérant un "0" supplémentaire juste après le P et obtenir ainsi : P000000, P000016, P000020, .... P002457.

    Si j'ai plutôt l'habitude de ce genre de manips sous bash (Linux), je suis plutôt nul en script BATCH ... Si quelqu'un pouvait m'aider et m'indiquer la procédure à suivre ...

    Merci beaucoup par avance !!

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Tu peux faire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    
    setlocal enabledelayedexpansion enableextensions
    
    FOR /f "DELIMS=" %%A IN ('dir /aa/b/s') DO (CLS&ECHO.TRAITEMENT DE : & ECHO   - %%A
                                                SET "$#=%%~NA"
                                                REN %%~NA%%~XA !$#:P=P0!%%~XA)
    ECHO ---- TRAITEMENT TERMINE ----
    1 - Sauve ce code dans renomme.bat
    2 - place le dans repertoire de départ (là où doit commencer le renommage)
    3 - lance renomme.bat dans le Terminal (cmd) ou en double cliquant dessus

    Ce code ne fait aucun test il renomme tous les fichiers en substituant le P par un P0.

    Donc si tu as un fichier papa.txt il deviendra p0ap0a.txt.

    Pour tester tu peux remplacer le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REN %%~NA%%~XA !$#:P=P0!%%~XA
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo RENNOMAGE DE  %%~NA%%~XA EN !$#:P=P0!%%~XA>>sortie.log
    Et examiner le sortie.log

    Si cela te conviens, alors tu le lances tel quel.

    Amicalement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Wouhaou !!! quel "service" !!!
    Je n'en attendais pas tant : c'est super sympa.

    Je vais tester tout ça ce matin. Merci !!!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Ça a marché nickel, j'ai juste modifié les options de dir, en ne mettant que /ad/b car il ne fallait renommer que les noms des répertoires du dossier courant.

    Merci encore !!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Bonjour tout le monde,

    Je rouvre ce poste car mon problème a légèrement évolué. Je dois toujours renommer en masse, mais mon soucis est que les noms des dossiers contiennent des espaces et du coup le script ne veut plus fonctionner.

    J'ai des dossiers du genre "toto titiP12345" (au lieu de "P12345" à l'origine de mon cas). Quelle modif dois-je apporter au code ?

    J'ai essayé diverses hoses avec des guillemets, mais sans résultat ...
    Merci pour votre aide !!!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Bon ben j'avais presque la solution et à force de tâtonner, j'ai trouvé, il falait juste entourer la mention %%~NA%%~XA de guillemets doubles, pour donner "%%~NA%%~XA"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Renommer en masse des fichiers html
    Par mohamed_ dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 12/12/2011, 11h31
  2. [Batch] Renommer en masse certains fichiers
    Par Goubil dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 06/05/2011, 18h44
  3. Réponses: 9
    Dernier message: 04/02/2010, 16h36
  4. [Débutant] Renommer en masse dans le terminal
    Par mikysett dans le forum Apple
    Réponses: 11
    Dernier message: 02/09/2008, 19h31
  5. [Champs] Renommer en masse les champs/tables
    Par franck43 dans le forum Access
    Réponses: 10
    Dernier message: 21/02/2007, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo