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 le début d'un nom de fichier en batch. [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 79
    Points : 84
    Points
    84
    Par défaut Supprimer le début d'un nom de fichier en batch.
    Bonjour,

    Je cherche à supprimer le début du nom de plusieurs fichiers.
    Ces fichiers sont contenu dans une arborescence :
    Un dossier
    un sous dossier
    un sous dossier
    un sous dossier

    Les fichier cible peuvent se trouver dans un dossier ou/et dans un sous dossier.

    Pour le moment le nom de mes fichier ressmble à :
    une première partie_XXXXX_une deuxième partie.qqc
    Chaque partie (sauf XXXXX) peut etre composé de 1 ou plusieurs mots.

    Mon objectif premier serait de supprimer de manière systèmatique la première partie qui est différente d'un fichier à un autre, ainsi que le premier "_".

    Mon second objectif serait de pouvoir faire tourner mon batch en permanence sans qu'il renomme les fichiers précédemment modifié.

    Lors de mes recherches j'ai trouver un script permettant de modifier la fin d'un nom de fichier si elle est connu et écrite en toutes lettres. N'ayant que très peu de connaissance en batch, je ne sais pas si cela peux vous aider à me donner un élément de réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    setlocal enabledelayedexpansion 
    set partieasupprimer= *_
    
    for "delims==" in ('dir /b ^| find "%partieasupprimer%"') do ( set oldfilename=%%F set newfilename=!oldfilename:%partieasupprimer%=! Ren "!oldfilename!" "!newfilename!" )
    Merci d'avance pour votre réponse

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    :::Par Sachadee 05-06-2013
    
    @echo off&cls
    
    setlocal enabledelayedexpansion enableextensions
    
    for /f "tokens=1* delims=_" %%a in ('dir /b') do (if not "%%b"=="" (echo REMPLACEMENT DE : "%%a%_%b"&set $b=%%b&set $b=!$b:_=-!&echo PAR             : "!$b!"
                                                                        move "%%a_%%b" "!$b!") )
    Il te sépare ton fichier en 2 partie, remplace le "_" dela 2eme partie par un "-", pour éviter de le traiter une 2eme fois et renome le fichier sans la premiere partie.

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 79
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Super et merci.
    Ce code fonctionne bien pour mon renommage de fichier.
    Mais il ne descend pas dans mon arborescence et ne procède donc pas au renommage dans les sous dossiers.

    J'ai tenté de :
    remplacer la variable après le /F mais sans résultat
    de mettre un /R après le FOR

    mais cela reste sans résultat.

    Une idée ? une piste ?

    Merci d'avance

  4. #4
    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
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 79
    Points : 84
    Points
    84
    Par défaut
    Merci cela fonctionne très bien.

    Le seul détails c'est que avec la syntaxe initiale :
    Cela remonter les fichiers se trouvant dans les sous dossier dans le dossier racine après renommage.
    Après quelque recherche j'ai changé la commande "move" en "ren" pour éviter ce déplacement.

    Voici le code final du Batch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    :::Par Sachadee 05-06-2013
    echo off&cls
    
    setlocal enabledelayedexpansion enableextensions
    for /f "tokens=1* delims=_" %%a in ('dir /aa /b /s') do (if not "%%b"=="" (echo REMPLACEMENT DE : "%%a%_%b"&set $b=%%b&set $b=!$b:_=-!&echo PAR             : "!$b!"
     ren "%%a_%%b" "!$b!") )
    Un grand merci à toi sachadee

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

Discussions similaires

  1. [Batch] Supprimer une partie d'un nom de fichier a partir de la fin
    Par wayikacewenok dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 27/01/2016, 11h59
  2. [RegEx] Supprimer les caractères spéciaux des noms de fichiers
    Par Steph84563 dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2014, 14h51
  3. Supprimer un espace dans un nom de fichier Excel
    Par Oreo_ dans le forum Macro
    Réponses: 2
    Dernier message: 03/10/2013, 21h56
  4. [XL-2003] supprimer les Guillemets autour du nom de fichier à enregistrer
    Par comme de bien entendu dans le forum Excel
    Réponses: 14
    Dernier message: 11/08/2011, 11h40
  5. supprimer les espaces d'un nom de fichier
    Par Joey5 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 07/11/2008, 11h56

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