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 FOR et opérations sur le nom/chemin d'accès des fichiers


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 7
    Par défaut Boucle FOR et opérations sur le nom/chemin d'accès des fichiers
    Bonjour,

    Je suis relativement débutant en batch et je travaille sur un wrapper permettant d'analyser des fichiers.
    Dans un dossier rep1, j'ai des fichiers dont les noms sont structurés comme suit :
    • AB_xxxxxx.txt
    • AD_ffffffff.txt

    Dans un second dossier rep2, j'ai des fichiers dont les noms sont structurés ainsi :
    • AD_aaaa_eee_rrr.txt
    • AB_ddddd.txt

    Je souhaite parcourir le dossier rep1 et extraire le préfixe des fichiers, puis parcourir le dossier rep2 et si les préfixes sont les mêmes lancer une commande sur les deux fichiers partageant le même préfixe. Cette commande nécessite les chemin d'accès absolus vers les fichiers.
    J'ai écrit ce début de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set targetdir=C:\Documents\rep1\test\
    set basedir=D:\Documents\rep2\test\
    
    
    for /f "tokens=1,2 delims=@" %%i in ('dir /b %targetdir%\*.txt') do (
    	for /f "tokens=1,2* delims=_" %%a in ('dir /b %basedir%\*.txt') do if "%%i" EQU "%%a" (
    	command ....
    	)
    )
    Ces lignes me permettent bien de récupérer les préfixes et de les comparer mais elles ne permettent pas d'obtenir les chemins d'accès absolus. J'ai essayé de combiner, par exemple, %basedir%\%%a_%%b%%c mais ce n'est pas reconnu comme un chemin d'accès.

    Pourriez-vous m'aider,

    Merci d'avance

  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
    Par défaut
    Salut,


    Avec les modificateurs tu peux retrouver ce qu'il te faut :


    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set targetdir=C:\Documents\rep1\test\
    set basedir=D:\Documents\rep2\test\
     
     
    for /f "tokens=1,2 delims=@" %%i in ('dir /b %targetdir%\*.txt') do (
    	for /f "tokens=1,2* delims=_" %%a in ('dir /b %basedir%\*.txt') do if "%%i" EQU "%%a" (
               echo absolue 1 =^> "%%~dpnxi"
               echo absolue 2 =^> "%%~dpnxa"	
    	)
    )


  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 7
    Par défaut
    Bonjour,

    Merci pour ta réponse. J'avais déjà essayer cette option, mais elle ne me donne pas le chemin absolu complet :
    par exemple, pour le rep1, elle donne : C:\Documents\rep1\test\AB et C:\Documents\rep1\test\AD
    Or, j'aurais besoin de retrouver le chemin absolu complet, incluant le nom du fichier : C:\Documents\rep1\test\AB_xxxxxx.txt

    Merci

Discussions similaires

  1. Boucle For avec condition sur doublons
    Par nyto35 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/04/2013, 11h04
  2. Boucle for Vs While sur un Iterator
    Par thierryler dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2010, 13h30
  3. Boucle For Next infinie sur enregistrement des pieces jointes
    Par moumerico dans le forum Général VBA
    Réponses: 4
    Dernier message: 25/08/2010, 09h43
  4. [Batch] Makefile, batch & boucle FOR
    Par alband85 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/06/2009, 10h10
  5. BATCH : Boucle FOR qui ne boucle pas ?!
    Par agyar dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/10/2008, 11h27

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