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 :

Supprimer une chaine de caractères variable jusqu'à une donnée numérique [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut Supprimer une chaine de caractères variable jusqu'à une donnée numérique
    Bonjour le Forum,

    Je souhaiterais renommer 1200 fichiers .pdf, contenus dans un dossier, à l'aide d'une commande .bat.

    Jusqu'à présent mes fichiers se présentaient sous cette forme :

    BLABLABLA_99999_TOTO.pdf
    BLABLABLA_66666_TATA.pdf
    BLABLABLA_55555_TITI.pdf
    Grace à ma commande je supprimais la partie "BLABLABLA_" pour ne garder que "99999_TOTO.pdf", "66666_TATA.pdf"...etc...

    Voici mon fichier .bat :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off 
    setlocal enabledelayedexpansion 
    set partieasupprimer=BLABLABLA_
     
    for /f "delims==" %%F in ('dir /b ^| find "%partieasupprimer%"') do ( 
    	 set oldfilename=%%F 
    	 set newfilename=!oldfilename:%partieasupprimer%=! 
    	 Ren "!oldfilename!" "!newfilename!" 
    	 )

    Aujourd'hui, mes fichiers sont nommés différemment :

    BLABLABLA_99999_TOTO.pdf
    BLIBLUBLO_88888_TITI.pdf
    BLODRAVROKI_55555_TATA.pdf
    ...
    Je souhaiterais donc supprimer la partie avant les nombres. pour ne garder que : "99999_TOTO.pdf", "88888_TITI.pdf", ...etc...

    Mais après plusieurs recherches et lecture de tuto (mes notions sont limitées !!!), je ne parviens pas à mes fins.

    Merci pour votre aide.
    Cordialement,
    Bob 182

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Il suffit de modifier la boucle pour découper le nom du fichier suivant le caractère _

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off 
    setlocal disabledelayedexpansion
     
    for %%A in (*.pdf) do (
    for /f "tokens=1,* delims=_" %%E in ("%%~A") do ren "%%~fA" "%%~F"
    )

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut
    Bonjour Barnabe0057,

    Merci pour ta réponse ultra rapide !!!

    C'est exactement ce que je cherchais.

    C'est pas urgent mais si à l'occasion tu pouvais m'expliquer comment fonctionne
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for %%A in (*.pdf) do (
    for /f "tokens=1,* delims=_" %%E in ("%%~A") do ren "%%~fA" "%%~F"
    )

    Encore merci et bonne journée.

    Cordialement,
    Bob 182

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    La première boucle FOR liste tous les fichiers .pdf, la variable %%A contient uniquement le nom du fichier et son extension.

    La deuxième boucle FOR s'occupe de modifier le nom du fichier, je découpe le nom en utilisant _ comme délimiteur, la partie inutile du nom sera stockée dans la variable %%E (token 1), la partie que l'on souhaite conserver sera stockée dans la variable %%F (token *)

    La commande REN renomme le fichier en utilisant les variables de boucle (%%A et %%F)

    La variable %%~fA correspond au nom complet du fichier (chemin + nom + extension), le f minuscule est d'une grande importance (voir l'aide FOR /?)
    La variable %%F correspond au nouveau nom du fichier (nom + extension)

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut
    C'est très clair.

    Merci.

    Cordialement,
    Bob 182

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

Discussions similaires

  1. [XL-2007] Supprimer une donnée dans un tableau de variables
    Par Souri84 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/10/2010, 10h57
  2. Réponses: 6
    Dernier message: 15/04/2007, 13h06
  3. Chaine de caractères variables...
    Par ralkif dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/04/2006, 16h10
  4. Supprimer une donnée d'un fichier txt
    Par dinastar dans le forum Langage
    Réponses: 7
    Dernier message: 31/03/2006, 15h28

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