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 massivement des fichiers [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur débutant
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur débutant

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut Renommer massivement des fichiers
    Bonjour,

    Je souhaite renommer tous les fichiers *.jpg contenus dans un répertoire et tous ces sous répertoires en convertissant le chemin en un nom de fichier.
    Avec un exemple ce sera plus explicite:

    Le répertoire Toto contient les dossiers Tutu TITI et TATA et chacun contient des fichiers nommés 1.jpg 2.jpg 3.jpg
    Et je souhaite avoir comme résultat:
    Un répertoire Toto contenant les fichiers Tutu_1.jpg Tutu_2.jpg Tutu_3.jpg TITI_1.jpg TITI_2.jpg TITI_3.jpg TATA_1.jpg TATA_2.jpg TATA_3.jpg.

    J'ai essayé plein de chose pour y arriver mais sans succès. Est ce bien réalisable avec un Batch?

    Merci d'avance pour votre aide

  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
    Bonsoir,

    Un batch est tout à fait adapté pour cette tâche, voilà un exemple :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @echo off
    setlocal enableextensions enabledelayedexpansion
    ver | find "10.0." >nul && chcp 65001 >nul || chcp 28591 >nul
     
    set "source=Toto"
     
    cd /d %source% || exit /b 1
     
    for /f "delims=" %%A in ('2^>nul dir /b /s *.jpg') do (
     
    	set "string=%%~dpA"
    	set "string=!string:\=.!"
    	for /f "delims=" %%E in ("!string!") do set "parent=%%~xE"
     
    	move "%%~fA" "%source%\!parent:~1!_%%~nxA"
     
    )
     
    pause
    exit

    Le script est testé et fonctionnel, tu auras juste à indiquer le chemin vers le dossier Toto dans la variable nommée "source" au début du script.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    @barnabe

    Je vois que tu fait souvent ceci cd /d %source% || exit /b 1, personnellement j'évite cela car tu auras tôt ou tard des problèmes avec les chemins unc

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur débutant
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur débutant

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut Merci
    Merci pour cette réponse très rapide.

    Le Batch fait presque ce que j'attendais mais je me suis mal exprimé dans mon premier message et je n'arrive pas à modifier le batch tout seul pour y arriver.

    Mon dossier contient plusieurs sous dossiers qui eux même contiennent des sous dossiers et je souhaite que le nom du fichier contienne le nom du dossiers et du sous dossier et du sous sous dossier et ceux de la "racine" jusqu'au fichier *.jpg

    2 exemples :
    TOTO/TUTU/TITI/TATA/1.jpg devient TOTO/TUTU_TITI_TATA_1.jpg
    TOTO/TRILI/TUTU/1.jpg devient TOTO/TRILI_TUTU_1.jpg

    Je pensais qu'avec le batch d'origine j'arriverais à mes fins mais j'ai encore besoin de vote aide.

  5. #5
    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
    Est-ce que c'est mieux comme ça :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @echo off
    setlocal enableextensions enabledelayedexpansion
    ver | find "10.0." >nul && chcp 65001 >nul || chcp 28591 >nul
     
    set "source=Toto"
     
    if "%source:~-1%"=="\" (set "source=%source:~0,-1%")
     
    for /f "delims=" %%A in ('2^>nul dir /b /s %source%\*.jpg') do (
     
    	set "chemin=%%~dpA"
    	set "relatif=!chemin:%source%\=!"
    	set "relatif=!relatif:\=_!"
     
    	move "%%~fA" "%source%\!relatif!%%~nxA"
     
    )
     
    pause
    exit

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur débutant
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur débutant

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut Merci
    Exactement ce que je voulais faire.

    Merci beaucoup

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

Discussions similaires

  1. [PowerShell] Renommer récursivement des fichiers avec date de creation/modification
    Par Jean-Michel G dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 16/04/2020, 16h48
  2. Renommer massivement des tables
    Par Daviloppeur dans le forum Requêtes
    Réponses: 8
    Dernier message: 26/01/2020, 21h26
  3. OK : Renommer Aléatoirement des fichiers
    Par ben___ dans le forum VBScript
    Réponses: 4
    Dernier message: 17/11/2010, 15h15
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

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