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 une ligne d'un fichier en batch


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Modifier une ligne d'un fichier en batch
    Bonjour,

    J'ai un fichier texte de configuration

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    [TEST_MODE]
    NO
    [DIVISION]
    F00
    [TIMEOUT]
    50
    [SAM175]
    YES
    [SAM176]
    YES
    [SAM060]
    YES
    [SAM177]
    NO
    [SAM261]
    NO
    [SAM260]
    NO
    [SAM310]
    NO
    [SAM301]
    YES
    [SAM262]
    NO
    [SAM263]
    NO
    [SAM265]
    NO
    [SAM190]
    NO
    [SAM191]
    NO
    [SAM192]
    NO
    [SAM180]
    NO
    [SAM400]
    YES
    [SAM409]
    YES
    [SAM410]
    YES
    [SAM420]
    YES
    [SAM440]
    YES
    [SAM460]
    YES
    [SAM700]
    YES
    Je cherche à modifier la ligne "[SAM301]" et mette "YES" en dessous (celle ci peux etre à "NO" ou inexistante, dans ce cas la rajouter ) à la fin du fichier en ligne de commande (batch). Je sais le faire sous unix, mais en dos...

    Merci d'avance

    Arnaud

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    et si t'installais cygwin sur ta machine pour faire ta commande unix?
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    je suis sous windows... je recherche à le faire en batch

  4. #4
    Membre averti Avatar de JPDMJC
    Profil pro
    Inscrit en
    Février 2005
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 337
    Points : 394
    Points
    394
    Par défaut
    Effectivement mieux vaut utiliser du batch, on est sous windows après tout
    As-tu regardé la FAQ sur batch ( http://windows.developpez.com/faq/batch/ ) ?
    Si tu sais comment lire, faire un test, et écrire, alors tu as toutes les armes pour y arriver.

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    j'ai bien compris que t'étais sous Windows, et justement, quand t'es plus à l'aise avec les commandes unix, il suffit d'installer cygwin. il a été créé pour cela

    sinon, la faq devrait effectivement t'aider, tu lis chaque ligne et quand tu detecte SAM013, tu remplace la ligne suivante par ce que tu veux. Maintenant, si tu es plus familier avec un autre language (c, c++ ou autre) qu'avec les batch (comme moi ), cela devrait prendre 6 lignes de code en tout et pour tout
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Voici la code qui remplcera NO par YES:

    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
    for /f "tokens=1 delims=:" %%i in ('type fichier.txt ^|findstr /n /c:"[SAM301]"') do set vrNumbLigneSAM301=%%i& set /a vrNumbLigneSAM301+=1
    
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do set vrNumbLigne=%%i& set vrLign=%%j& call :trait
    
    goto fin
    
    :trait
    
    if "%vrNumbLigne%"=="%vrNumbLigneSAM301%" set vrLign=%vrLign:NO=YES%
    
    echo %vrLign%>> fichier2.txt
    
    goto :eof
    
    :fin

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    ok, je vais vérifier cela dans la journée. Merci encore de votre aide !

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

Discussions similaires

  1. Modifier une ligne d'un fichier XML
    Par murphy dans le forum XML
    Réponses: 1
    Dernier message: 09/09/2008, 11h01
  2. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 22h08
  3. Modifier une ligne d'un fichier texte?
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/05/2007, 18h51
  4. Modifier une ligne d'un fichier texte
    Par lauben dans le forum C
    Réponses: 2
    Dernier message: 27/05/2006, 12h45
  5. Modifier une ligne d'un fichier
    Par jula dans le forum Linux
    Réponses: 4
    Dernier message: 08/04/2005, 17h24

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