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 des fichiers selon 2 variables en Batch.


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Renommer en masse des fichiers selon 2 variables en Batch.
    Bonjour à tous.

    Étudiant en système d'information géographique, j'ai besoin de renommer tous un tas de fichiers que sont des feuilles cadastrales. Les feuilles sont des dossiers nommés par exemple "018000AB01" et dans chaque dossier il y a plusieurs fichiers, notamment, "Parcelles", "Bati"...etc.
    Je voudrais donc pouvoir les renommer de la manière suivantes "018000AB01_Parcelles", "018000AB01_bati" etc... J'ai donc créer un petit script avec 2 variables ( une variable pour le nom de dossier (%%a) et une variable pour le nom des fichiers (%%i)), sauf que quand je lance le batch avec les deux variables ça ne marche pas et il me prends uniquement le nom de dossier. J'ai donc essayer avec qu'une seule variable et dans ce cas de figure, dans l'invite de commande, j'ai l’impression qu'il prends bien en compte le "renommage" mais en réalité rien de se passe. Si quelqu'un à une idée? En espérant avoir été suffisamment clair, je vous remercie d'avance et vous souhaite une bonne journée.


    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @echo off
    setlocal enableDelayedExpansion
    for /d %%a in (*) do (   
    	for %%i in ("%%a\*") do (
    		set ext=%%~xi
    		echo ren "%%i" "%%a_!%%i!!ext!"
      	)
    )
    pause
    endlocal

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Je ne sais pas si vous voulez le faire en Vbscript, car dernièrement, j'ai posté un code dans un forum anglais qui peut faire quelque chose de similaire
    Rename files using foldername as prefix and part of current filename VBS
    NB : Il faut le modifier et le tester sur un dossier Test avant

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci pour la réponse . Je ne l'ai pas fait en VBS, parce que je ne sais pas pourquoi mais j'arrive pas du tous à accrocher avec ce langage. Je ne suis pas très doué avec la programmation de toute façon. Je vais regarder ton code et essayer de comprendre
    Merci.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oh! j'ai réussi à faire marcher mon truc juste en enlevant un point d'exclamation à la ligne 6. (quand on est con)

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @echo off 
    setlocal enableDelayedExpansion
    for /d %%a in (*) do (   
    	for  %%i in ("%%a\*") do (
    		set ext=%%~xi
    		echo ren "%%i" "%%i_%%a!!ext!"
      	)
    )
    pause
    endlocal

    le seul soucis c'est que dans l'invite de commande, il me dit bien qu'il renomme sauf que dans la réalité, le nom des fichiers ne bougent pas. Savez vous pourquoi? Ai-je oublier un truc? Salut!

    Nom : Capture1.PNG
Affichages : 916
Taille : 14,6 Ko

  5. #5
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Problèmes de droits?
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Salut.

    Non non, je suis en local et je peux les renommer manuellement. :/

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par alfjar Voir le message
    Oh! j'ai réussi à faire marcher mon truc juste en enlevant un point d'exclamation à la ligne 6. (quand on est con)

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @echo off 
    setlocal enableDelayedExpansion
    for /d %%a in (*) do (   
        for  %%i in ("%%a\*") do (
            set ext=%%~xi
            echo ren "%%i" "%%i_%%a!!ext!"
          )
    )
    pause
    endlocal

    le seul soucis c'est que dans l'invite de commande, il me dit bien qu'il renomme sauf que dans la réalité, le nom des fichiers ne bougent pas. Savez vous pourquoi? Ai-je oublier un truc? Salut!

    Nom : Capture1.PNG
Affichages : 916
Taille : 14,6 Ko

    Si tu es sûr de l'output alors tu enlèves le echo devant ren à la ligne N°6 et n'oublies pas mon +1 si ça marche bien et de mettre la discussion en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off 
    setlocal enableDelayedExpansion
    for /d %%a in (*) do (   
        for  %%i in ("%%a\*") do (
            set ext=%%~xi
            ren "%%i" "%%i_%%a!!ext!"
          )
    )
    pause
    endlocal

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Salut, merci pour ta réponse mais j'ai testé d'enlever le écho ligne 6 et ça plante. :/ erreur de syntaxe.

  9. #9
    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,

    la commande REN n'accepte pas de chemin en 2 éme argument mais uniquement un nom de fichier.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ren c:\toto\test.txt final.txt
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. Renommer des fichiers selon le dossier
    Par asx1204 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 23/09/2014, 12h10
  2. Renommer en masse des fichiers html
    Par mohamed_ dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 12/12/2011, 11h31
  3. Réponses: 9
    Dernier message: 04/02/2010, 16h36
  4. Boucle en Dos pour lister des fichiers selon une date
    Par Corben dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 17/12/2005, 12h17
  5. lister des fichiers selon des critères
    Par Corben dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 18/10/2005, 16h52

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