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 :

Traiter plusieurs fichiers en batch [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut Traiter plusieurs fichiers en batch
    Bonjour,

    Voici mon script pour l'instant, celui ci est censé analyser une chaine de caractères particulières dans des fichiers et traiter les fichiers en conséquence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    
    find /C /I "
    PV1|1|I|^^^^" %%i
    
    rem si ER=0 alors la chaine a ete trouve donc erreur
    rem si ER=1 alors chaine non trouve donc ok
    
    echo %errorlevel%
    if %errorlevel% equ 0 move c:\test2\h011193*.hl7 c:\erreur
    
    move c:\test2\h011193*.hl7 c:\ok
    Il y a plusieurs fichiers aussi à traiter dans c:\test2, j'aimerais que le script les traite un par un. Car actuellement il prend tous les fichiers en même temps en ne traitant que le premier.
    Je pensais à une boucle for, mais étant novice, je ne vois pas trop comment l'intégrer dans mon script, pourriez vous m'aider please ??

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    @echo off
    
    set $recherche="12345"
    
    for %%a in (*.hl7) do (call :cherche "%%a")
    goto end
    
    :cherche
    find /C /I %$recherche% %1
    if %errorlevel% equ 0 (move %1 c:\erreur) else (move %1 c:\ok)
    
    
    :end
    remplace le string à rechercher de la variable "$recherche"

    Amicalement

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut
    Merci je vais tester ta solution et te dire si c'est ok

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut
    Impecc, cela fonctionne, merci !!
    Pour ma culture perso par contre pourrais tu m'expliquer à quoi sert le %1 à la fin de
    find /C /I %$recherche% %1
    ?

  5. #5
    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
    Il correspond au fichier traité à chaque itération de la boucle for.
    Il a la même valeur que %%a.

    (call :cherche "%%a")

    mais comme on l'envoye à travers un call dans :cherche. On récupère sa valeur en le traitant comme un argument. %1

    Tu peux tester ceçi pour mieux comprendre :

    Code : 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
    @echo off
    
    set $recherche="12345"
    
    for %%a in (*.hl7) do (call :cherche "%%a"
                           echo Argument envoy‚ a :cherche =  %%a)
    goto end
    
    :cherche
    echo Argument recu dans :cherche = %1
    pause
    find /C /I %$recherche% %1
    if %errorlevel% equ 0 (move %1 c:\erreur) else (move %1 c:\ok)
    
    
    :end

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut
    Ok je vois pour le call, donc %1 dans le find ne peut recevoir le nom de mon fichier que par le %%a dans le call c'est ça ?

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

Discussions similaires

  1. [XL-2010] Traiter plusieurs fichiers .xls de plusieurs feuilles
    Par ChipsAlaMenthe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/06/2015, 14h30
  2. [XL-2010] Traiter plusieurs fichiers excel
    Par nancy38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2013, 18h32
  3. traiter plusieurs fichiers d'un seul coup
    Par hajarita dans le forum Langage
    Réponses: 15
    Dernier message: 24/05/2012, 09h08
  4. [Débutant] traiter plusieurs fichiers de données
    Par mgombert dans le forum MATLAB
    Réponses: 4
    Dernier message: 03/02/2011, 08h42
  5. Suppression de lignes de plusieurs fichiers en Batch
    Par Chris_Ewoks dans le forum Scripts/Batch
    Réponses: 16
    Dernier message: 18/04/2008, 10h59

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