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 :

boucle pour renommer listes fichiers


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
    chargé R&D
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé R&D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut boucle pour renommer listes fichiers
    Bonjour,
    Je débute en bricollant quelques codes de ci de là.
    Je souhaiterais renommer un ensemble de fichiers (tous le meme format *.las) en utilisant les 3 derniers caractères.
    en cherchant à gauche à droite j'arrive à le faire sur un fichier :

    set i=block_000001.las
    set nom=%i%
    set b=B%nom:~-7,-4%.las
    echo %b%
    => je reçois bien : B001.las

    En revanche ça bloque lorsqu'il s'agit de boucler sur l'ensemble des fichiers d'un répertoire.
    For %%i in (%monRepertoire%\*.las) do (
    set nom=%%i%
    set b=B%nom:~-7,-4%.las
    ren %%i %b%
    Je dois chier dans la syntaxe du set nom ou set b.
    Quelqu'un a t il une piste ?
    MErci d'avance.

  2. #2
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    setlocal enabledelayedexpansion
     
    For %%i in (%monRepertoire%\*.las) do (
      set nom=%%i
      set b=B!nom:~-7,-4!.las
      ren %%i !b!
    )

    Le fait d'etre dans un for t'oblige à utiliser les expansions retardées de variables (! ! au lieu de % %)
    Et la syntaxe de ton set nom = %%i% n'était pas correcte.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    chargé R&D
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé R&D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Merci pour la réponse rapide.
    Je ne connaissais pas l'expansions retardées de variables (on en apprend tous les jour ...).
    Je viens de faire les modif comme indiquées dans ton message.
    Le rename s'effectue sur le 1er fichier, qu'il renomme !b!, puis ça bloc sur les autres fichiers en me disant que "le nom de fichier existe déjà".

    Si je remplace "ren %%i !b!" par "echo !b!", il m'écrit à chaque fichier !b!
    J'ai l'impression qu'il ne comprend pas la ligne (ou ne retient pas dans b) :
    "set b=B!nom:~-8,-5!.las"

    Moi y'en a pas comprendre ???
    Please Help !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    chargé R&D
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé R&D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    OK ça marche !!!
    Je viens de comprendre que j'avais oublié la 1er ligne de ton code :
    "setlocal enabledelayedexpansion"
    Quand je la mets, ça marche beaucoup mieux.
    Je croyais que c'était du commentaire ...
    Oh la grosse purge que je suis !!

    Merci beaucoup !

    PS ; en fait t'as raison : il suffit de trouver la languette, mais ... pour cela, il faut regarder du bon coté !

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

Discussions similaires

  1. [XL-2010] Macro pour renommer des fichiers à partir d'une liste de nom de fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/01/2013, 18h03
  2. [java.io.File] problème pour renommer un fichier
    Par RR instinct dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/12/2010, 15h24
  3. [Débutant] Boucle pour renommer plusieurs fichiers aux noms DIFFERENTS
    Par Bulle_ dans le forum MATLAB
    Réponses: 2
    Dernier message: 27/03/2010, 21h04
  4. boucle pour renommer un fichier
    Par grego.. dans le forum Langage
    Réponses: 3
    Dernier message: 21/07/2009, 20h05
  5. Appel d'une fonction pour renommer un fichier
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/04/2006, 16h13

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