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 des fichiers par lot


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 61
    Points : 53
    Points
    53
    Par défaut Renommer des fichiers par lot
    Bonjour,

    D'accord, le titre n'est pas accrocheur Je le sais pour avoir lu de très nombreuses discussions/demandes/tutos/... sur le même sujet.
    Chacun répondait à une petite partie de mon problème, mais... je n'ai toujours pas la solution.
    Alors me voici.

    Le problème:
    dans un répertoire, se trouve une collections de photos et images (jpg, png, ...).
    Leurs noms sont tous sous la forme: "0005_maphoto.jpg", "0006_mondessin.gif" ou "0010_ma_carte.bmp".
    Mon objectif:
    je cherche à écrire un batch qui supprimerait les 5 premiers caractères de chaque nom, pour obtenir: "maphoto.jpg", "mondessin.gif" ou "ma_carte.bmp"

    Le meilleur résultat que j'ai obtenu est avec cet essai. Il marche.... trop bien !
    NB. Tous les "echo..." ne sont là que pour visualiser les étapes

    Code bat : 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
    21
    22
    @echo off
    setlocal enabledelayedexpansion
     
    for /R %%X in (*.jpg  ) do call :FAIRE %%X
    goto :eof
     
    :FAIRE
    	echo %1			rem nom du fichier long
       set A=%1
    	echo FICHIER_LONG  === !A!
       set B=%~x1
    	echo EXTENSION     === !B!
       set C=%~nx1
    	echo FICHIER_COURT === %C% 		
    	set D=%C:~5%
    	echo D === %D% 		
     
    	ren !A! %D%
     
    	pause
    goto :eof
    endlocal

    Il marche trop bien, disais-je... voici pourquoi.
    Afin de simplifier les choses au maximum, j'ai placé ce batch dans un dossier ne contenant que lui et une seule photo : "0004_claude_R.jpg"

    Lancement du batch, arrêt au niveau de la "pause", vérification: magnifique , la photo est renommée "claude_R.jpg", ce que je voulais !
    Appui sur une touche, et... surprise et désillusion: le même (et unique) fichier est traité à nouveau et devient "e_R.jpg".

    La boucle s'arrête ensuite, mais... trop tard

    J'ai bien sûr essayé quelques variantes en espérant...
    1. une boucle "for" avec ou sans le paramètre "/R" : pas de changement
    2. remplacer l'instruction de renommage "ren !A! %D%" par "ren !A! %D%x", de façon que le renommage transforme l'extension en autre chose que .jpg (quitte à virer le "x" par la suite), et là, résultat encore plus surprenant:
      au premier tour de boucle, j'obtiens, comme attendu : "claude_R.jpgx", mais il y a un 2ème tour de boucle qui donne: "e_R.jpgxx" (Cette fois ce n'est même plus un fichier .jpg qui est renommé !)


    J'avoue que je ne sais plus quoi inventer et je me tourne vers les spécialistes .. avec beaucoup d'espoir.

    Merci d'avance de l'aide qu'on pourra m'apporter
    Mike

  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,

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    setlocal enabledelayedexpansion
     
    for /f "delims=" %%X in ('dir /a-d /b *.jpg') do (
     set $fichier="%%X"
     move "%%X" "!$fichier:~5!"
    )

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut software BatchRenameFiles Tool/logiciel BatchRenameFiles Tool
    try BatchRenameFiles Tool/'essayer le programme BatchRenameFiles Tool

  4. #4
    Membre à l'essai
    Homme Profil pro
    Photographe
    Inscrit en
    Mai 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Modifier la façon dont windows renomme les fichiers
    Hello Hello
    Je cherche je cherche mais je ne trouve pas alors je m'adresse aux spécialistes.
    Savez-vous s'il existe un moyen de modifier la manière dont Windows renomme les fichiers par lot ?

    Depuis des lustres, il utilise une nomenclature identique :
    zoubi (1).jpg
    zoubi (2).jpg
    zoubi (x).jpg

    Ce qui n'est pas simple pour moi car ma base et mon flux de travail utilisent une architecture du type :
    zoubi_1.jpg
    Zoubi_2.jpg
    etc...

    Pour l'instant je passe par un logiciel tiers pour remettre tout ça au carré mais si Windows pouvait le faire directement, ce serait top.

    Merci par avance pour vos lumières...

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Non ce n'est certainement pas modifiable.

    Et pour la deuxième fois : crée tes propres post, surtout pour des questions différentes de celle d'origine.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Photographe
    Inscrit en
    Mai 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 8
    Points : 11
    Points
    11
    Par défaut c'est noté
    C'est noté

    et...

    C'est noté

Discussions similaires

  1. [Batch] MSDOS - renommer des fichiers par leurs checksum
    Par ben7875 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 18/07/2011, 09h47
  2. Renommer des dossiers par lots
    Par rambc dans le forum AppleScript
    Réponses: 12
    Dernier message: 18/04/2010, 13h27
  3. Eviter de renommer des fichiers par erreur
    Par sechanbask dans le forum Windows XP
    Réponses: 1
    Dernier message: 29/03/2009, 14h19
  4. [FPDF] renommer des PDF par lot selon leurs contenus
    Par Gabor3D dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/01/2008, 12h55
  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