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 :

Remplacement d'une chaîne de caractères dans un fichier xml


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club Avatar de franz32
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Remplacement d'une chaîne de caractères dans un fichier xml
    Bonjour à tous !

    Je galère un peu pour mettre à jour cette ligne dans un fichier XML : <Data="TrialAccess">911987057659283838040135</Data>

    En utilisant l'instruction Findstr "TrialAccess" je trouve facilement cette ligne dans le fichier ...c'est après que je ne sais plus comment faire...

    Je voudrais remplacer dans la série de nombres 911987057659283838040135 les 4 derniers chiffres par 9999 ...et mettre à jour le fichier.

    Est-il possible de dire " tu as trouvé la bonne ligne , alors va au bout de la ligne de nombres et remplace les 4 derniers par 9999 si les 4 derniers chiffres sont différents de 9999" ...???

    Autre réflexion : est-ce que l'instruction FIND peut trouver une variable égale à "911987057659283838049999" et la remplacer par la variable "911987057659283838049999"

    Le Dos est bien loin et je suis totalement rouillé ...

    Merci de votre aide précieuse !!

    Bon WE à tous

    Franz32

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Salut,
    Donne nous ton fichier XML et ton code si tu veux un coup de main ^^

    Ce que je te conseille de faire c'est de créer un nouveau fichier temporaire avec la modification désirée puis de remplacer ton fichier source par ce dernier.
    J'ai ce qu'il faut quelque pars mais j'aimerais tester sur ton cas concret.
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    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 !

    Une solution simple si ton XML n'est pas sur une seule ligne !!!!

    j'ai faît un petit xml de test :

    input.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <bla>hjjjjjj</bla>
    <Data="TrialAccess">911987057659283838040135</Data>
    <rebla> kfdkfk dfgjdgfosdg ljljdsg </rebla>
    <Data="TrialAccess">911987057659283837059999</Data>
    et le bat qui va faire le tri :

    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
    18
    @echo off
    
    setlocal enabledelayedexpansion
    
    (for /f "delims=" %%a in ('type input.xml') do (
    	set $sw=0
    	for /f "tokens=3 delims=<>" %%b in ('echo "%%a" ^| find "TrialAccess"') do (
    	   set $sw=1
    	   set "$value=%%b"
    	   if "!$value:~-4!"=="9999" (echo %%a) else (echo ^<Data="TrialAccess"^>!$value:~0,-4!9999^</Data^>)
    	)
    	if !$sw!==0 echo %%a
    
    )
    )>output.xml
    
    echo fini....
    ça va te generer output.xml avec tes valeurs modifié.
    Seul les valeurs qui n'ont pas 9999 come dernier numero seront traité !

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. [Batch] Remplacement d'une chaîne de caractères dans plusieurs fichiers txt
    Par antibab13 dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 03/09/2017, 16h52
  2. Réponses: 7
    Dernier message: 30/08/2017, 10h57
  3. Réponses: 11
    Dernier message: 15/07/2014, 09h52
  4. Remplacer une chaîne de caractères dans un fichier
    Par pol2095 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 26/03/2014, 07h35
  5. Réponses: 0
    Dernier message: 19/01/2009, 10h00

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