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 :

Problème d'utilisation d'une variable dans une boucle


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Problème d'utilisation d'une variable dans une boucle
    Bonjour !

    Je débute en batch ; c'est loin de mon boulot, mais ça me rend bien service à l'occasion.
    J'ai un répertoire contenant des fichiers docx sous forme de 4 chiffres. Je dois les renommer pour ajouter un suffixe et les déplacer dans un dossier au nom du fichier d'origine (et un sous-dossier au nom du fichier renommé, ce qui donne : [nomFichier]\[nomFichier+suffixe]\[nomFichier+suffixe].docx).

    Pour tester, j'ai essayé ça avec un nom pré-déterminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo
                    REM 1. Stocker nom dans une variable
                    set nom=1234
                    REM 2. Renommer le fichier
                    ren "%nom%.docx" "%nom%-COURRIER ARCHIVE.docx"
                    REM 3. Créer les deux sous-dossiers
                    md "%nom%\%nom%-COURRIER ARCHIVE"
                    REM 4. Déplacer le fichier dans le sous-dossier
                    move "%nom%-COURRIER ARCHIVE.docx" "%nom%\%nom%-COURRIER ARCHIVE"
    Et ça marche très bien.

    Là où ça se complique, c'est pour essayer de mettre ça avec une variable ! J'ai tenté d'utiliser la boucle FOR mais ça n'a pas l'air de fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo
    setlocal enabledelayedexpansion
    for %%M in (*.docx) do (
                    set %%m=%%M:~-5
                    md %%m-test
                    pause
    )
    J'ai essayé plusieurs variantes, mais rien n'y fait, je n'arrive pas à mettre dans la variable le nom du fichier sans l'extension et à le réutiliser ensuite dans ma boucle.

    Toute aide sera plus qu'appréciée, mais s'il y a quelques explications en bonus, ça sera parfait ! Merci !

  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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo
    setlocal enabledelayedexpansion
    for %%M in (*.docx) do (
                    set "m=%%M"
                    set "m=!m:~-5!"
                    md !m!
                    pause
    )
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. Utiliser une valeur d'une variable dans une Macro
    Par ca_adrien dans le forum Macro
    Réponses: 7
    Dernier message: 01/08/2013, 14h14
  2. utilisation d'une variable d'une class dans une autre class
    Par the watcher dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2010, 14h01
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

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