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 :

Modifier variables dans un fichier


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Modifier variables dans un fichier
    Bonjour,
    Je ne suis pas très familiarisé avec le batch et je crois que je me confronte à un pb qui me dépasse.
    En effet, je dispose d'un fichier dont je dois modifier certaines expressions (variables)
    Voici la composition du fichier:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ACTION NO='TECH',
    INTITULE='TEST DU PROG',
    ARMA='CAT',
    RADIO='S',
    PROG='D:\toto\bateau\import\&(x_numbr).cmd',
    FORM='S',
    COMPTE='1024',
    CRYPTE='B',
    RATIO='D:\arborescence\&(x_large_caste)_&(x_sms2).dos',
    BLAZON='S',
    VALEUR='1024',
    NTYPO='B',
    ZIPPED='U',
    CIBLE='REPLACE'
    ACTION NO='RELANCE',
    INTITULE='chercher le bon numero',
    ARMA='CAT',
    RADIO='S',
    PROG='D:\tableau\bord\atelier\armure\&(x_numbr).bat',
    FORM='S',
    COMPTE='1024',
    CRYPTE='B',
    RATIO='D:\depot\FORUM\label\&(x_sms2).&(x_large_caste)',
    ZIPPED='U',
    CIBLE='REPLACE'
    ACTION NO='COPIER',
    INTITULE='Atelier a programmer',
    ARMA='CAT',
    RADIO='F',
    PROG='D:\lieu\rebond\xpr&(x_numbr).bat',
    FORM='F',
    COMPTE='250',
    CRYPTE='A',
    RATIO='D:\rue\annonce\tour\&(x_sms2).&(x_large_caste)_ARCHI',
    ZIPPED='U',
    CIBLE='REPLACE'
    etc...
    Dans ce fichier, je dois modifier les lignes où apparaient les expressions suivantes:
    &(x_numbr) par &NUM
    &(x_large_caste) par &ESPA
    &(x_sms2) par &YEAR

    Par conséquent, je devrait aboutir à ce résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ACTION NO='TECH',
    INTITULE='TEST DU PROG',
    ARMA='CAT',
    RADIO='S',
    PROG='D:\toto\bateau\import\&NUM.cmd',
    FORM='S',
    COMPTE='1024',
    CRYPTE='B',
    RATIO='D:\arborescence\&ESPA_&YEAR.dos',
    BLAZON='S',
    VALEUR='1024',
    etc...
    J'ai beau chercher, je n'arrive pas à voir comment m'en sortir avec un bout de code...
    Est-ce que quelqu'un aurait une idée à me soumettre ?
    Merci d'avance pour votre aide :-)
    Farlane

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Ça devrait être quelque chose comme ça :

    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
    @echo off
    Setlocal EnableExtensions EnableDelayedExpansion
     
    set $fichier=fichier.txt
     
    if exist output.txt (del output.txt)
     
    for /f "tokens=1,* delims==" %%A in (%$fichier%) do (
     
    	set ligne=%%B
     
    	if "%%~A"=="RATIO" (
    		set ligne=!ligne:^(x_large_caste^)=ESPA!
    		set ligne=!ligne:^(x_sms2^)=YEAR!	
    		echo %%A=!ligne!
    	)
     
    	if "%%~A"=="PROG" (
    		set ligne=!ligne:^(x_numbr^)=NUM!
    		echo %%A=!ligne!
    	)
     
    	if not "%%~A"=="RATIO" (if not "%%~A"=="PROG" (echo %%A=%%B))
     
    ) >>output.txt
     
    pause
    exit

Discussions similaires

  1. Modifier le contenu d'une variable dans un fichier de conf XML
    Par ShellNoob dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 28/11/2017, 22h47
  2. Modifier une variable dans un fichier
    Par xavierdestev dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/04/2015, 15h16
  3. Réponses: 5
    Dernier message: 21/10/2005, 11h48
  4. modifier une variable dans un fichier
    Par Guismay dans le forum Langage
    Réponses: 7
    Dernier message: 11/09/2005, 19h46
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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