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 :

Extraire une chaîne de fichiers xml


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut Extraire une chaîne de fichiers xml
    Hello,

    Je souhaiterai créer un batch a lancer manuellement, dans différents dossier

    En entré :
    (ex : F930FTTAB.xml, F930FTTAB2.xml, F930FTTAB3.xml,)

    Créer une boucle qui parcours plusieurs fichier XML dans un dossier de manière a rechercher à chaque fois une condition qui enregistre le fichier xml concerné s'il la condition est vraie

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <XML>
    <F930FTTAB F930KY="F094REPORT" ... F930PERSO="1" ...> </F930FTTAB> (perso va être égal a 1 ou 2)
    </XML>

    Si je trouve F930PERSO="1" tu m'écris le document concerné (F930FTTAB.xml)
    Sinon tu passe a l'enregistrement suivant

    S'il n'en trouve aucun, renvoi la valeur " Aucun documents ne contient Perso = 1 "

    J'ai commencé des tests sur cette base :

    Code Batch : 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
    18
    19
    20
    21
    22
     
    :: Recherche dans un dossier parmis tous les fichiers xml pr‚sent
    :: Si l'on trouve le parametre perso=1
    @echo off
     
    :: On d‚finis les fichiers a scanner
    :: Et la chaine a rechercher
    set Find=Perso=2
    set File=*.xml
    set Trouve=""
    setlocal enabledelayedexpansion
     
    echo "-- Recherche --"
     
    for /f "tokens=*" %%a in ('type %File%') do (
    	 FIND /n "%Find%" %File%
     
     
    )
    echo %Trouve%
    echo "-- Fin --"
    pause

    En sortie :
    --Liste des documents qui contiennent perso = 1 --
    F930FTTAB.xml
    ...

    Ou
    -- Aucun documents ne contient Perso = 1 --

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut
    Petit Up sur un fichier ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <F930FTTAB F930KY="F094REPORT" L930901MSG="F1T0LQJPR0P4KM8W003D2" F930GESTFT="2" F930NIV="9" F930NOMTABLE="F094REPORT" F930PERSO="1" ..... F901TI8ORI=""></F930FTTAB>

    Maintenant il faudrait rechercher dans tout mon dossier et sous dossier tout ce qui est *.xml

    Et optimiser le code de façon à exclure tout ce qui n'est pas F090PERSO=
    Exemple de balise inutile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FTS1RUBRIQUE FTS1KY="ZMDISPO_SEUILMINI" ..... F901ACTIF="2" K901TO2QUALTRAD="" F901TI8ORI=""></FTS1RUBRIQUE>
    Car j'ai des fichiers avec plus de 50.000 lignes ce qui est long en terme de parcours.$


    Code Batch : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    :: Recherche dans un dossier parmis tous les fichiers xml present
    :: Si l'on trouve le parametre perso=1
    @echo off
    setlocal enabledelayedexpansion
     
    :: On definis les fichiers a scanner
    :: Et la chaine a rechercher
    REM set "Path=C:\Users\ccordier\Documents\RechercheXMLPerso\"
    set Files="F930FTTAB1.xml"
    set FindWord=F930PERSO="1"
     
    echo ----------------------------------
    echo --           Fichiers           --
    echo ----------------------------------
    REM echo Path %Path%
    echo Files %Files%
    REM echo FindWord %FindWord%
     
    echo ----------------------------------
    echo --  Recherche dans les XML --
    echo ----------------------------------
     
    for /f "tokens=7 delims=/ "  %%i in ('type %Files%') do (
     
    		set Array=%%i
    		REM echo Array !Array!
     
    		if !Array!==%FindWord% (
    			echo %FindWord% Trouver
    			dir %Files% /b		
    			echo ----------------------------------
    		) else (
    			echo Pas de %FindWord%
    			echo ----------------------------------
    		)
    ) 
    echo --            Fin               --
    echo ----------------------------------
     
    pause

Discussions similaires

  1. Extraire une chaîne de caractère d'un fichier ".ini"
    Par Droopy41 dans le forum VBScript
    Réponses: 7
    Dernier message: 27/05/2016, 17h30
  2. Réponses: 3
    Dernier message: 03/09/2007, 15h07
  3. Convertir une chaîne de caractères XML en Node
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/07/2007, 14h06
  4. [Tableaux] Extraire une chaîne entre des < et >
    Par DocCoinCoin dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2006, 14h54
  5. Extraire Une Ligne Du Fichier
    Par chakcc dans le forum C
    Réponses: 2
    Dernier message: 16/10/2006, 11h45

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