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 :

Correction de script [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Correction de script
    Bonjour à tous. Je suis débutant en scripts, et j'ai tenté d'écrire un script batch pour faire une recherche dans un fichier appelé "fichier.txt", pour copier les lignes comprises entre "Debut" et "Fin" et rediriger le tout dans un fichier appelé "fichier_new.txt"Voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    setlocal enableDelayedExpansion
    set t1=Debut
    set t2=Fin
    set p=0
    for /f "delims=" %%a in (C:\Users\kocess\Desktop\fichier.txt) do (
    if "%%a"=="%t1%" set p=1
    if !p! EQU 1 echo %%a >> C:\Users\kocess\Desktop\fichier_new.txt
    if "%%a"=="%t2%" set p=0
    )
    Malheureusement il ne fonctionne que pour les caractères, comme pour un texte de ce genre:

    gygzef
    Debut grgg
    tthth
    hthth
    Finrg
    grg
    grg

    pas pour les chaines de caractères. Quelqu'un pourrait-il le corriger svp? Merci d'avance

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Donne un exemple du fichier source et du fichier de sortie désiré.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Voici le contenu du fichier dont je dois extraire des données (fichier.txt):

    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
    Outil de r‚sultat du systŠme d'exploitation Microsoft (R) Windows (R) v2.0
    Copyright (C) Microsoft Corp. 1981-2001
    
    Jeu cr‚‚ le 24/04/2014 … 14:19:31
    
    
    
    Donn‚es RSOP pour UNIVERS\kocess sur SODW4608 : mode journalisation
    --------------------------------------------------------------------
    
    Configuration du systŠme d'exploitation : Station de travail membre
    Version du systŠme d'exploitation...... : 6.1.7601
    Nom du site............................ : N/A
    Profil itin‚rant :             N/A
    Profil local........................... : C:\Users\kocess
    Connexion via une liaison lente ? : Non
    
    
    PARAMÔTRES UTILISATEURS
    ------------------------
        CN=CESS\, Kokora louis David Christian,OU=Utilisateurs,OU=Comptes,OU=CIE,DC=univers,DC=ci
        Heure de la derniŠre application de la strat‚gie de groupe : 24/04/2014 … 12:28:54
        Strat‚gie de groupe appliqu‚e depuis :      GSEDCSGS2P.univers.ci
        Seuil de liaison lente dans la strat‚gie de groupe :   500 kbps
        Nom du domaineÿ:                        UNIVERS
        Type de domaine :                        Windows 2000
        
        Objets Strat‚gie de groupe appliqu‚s
        -------------------------------------
            Default Domain Policy
            UNI_Proxy
            UNI_Outlook2003_AutoProfile
    Je souhaiterais récuperer les données comprises entre PARAMÔTRES UTILISATEURS et Objets Strat‚gie de groupe appliqu‚s

    C'est-à-dire:

    CN=CESS\, Kokora louis David Christian,OU=Utilisateurs,OU=Comptes,OU=CIE,DC=univers,DC=ci
    Heure de la derniŠre application de la strat‚gie de groupe : 24/04/2014 … 12:28:54
    Strat‚gie de groupe appliqu‚e depuis : GSEDCSGS2P.univers.ci
    Seuil de liaison lente dans la strat‚gie de groupe : 500 kbps
    Nom du domaineÿ: UNIVERS
    Type de domaine : Windows 2000

  4. #4
    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,

    si ta structure de fichier (nb de ligne) est toujours la même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    setlocal EnableDelayedExpansion
    for /f "skip=20 delims=" %%a in (input.txt) do (
    set $l=%%a
    if /i "!$l:~0,3!"=="Obj" goto:next
    echo %%a)
    
    :next
    echo Termin‚
    sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    
    set $switch=false
    setlocal EnableDelayedExpansion
    
    for /f "delims=" %%a in (input.txt) do (
    if /i "%%a"=="Objets Strat‚gie de groupe appliqu‚s" goto:next
    if /i "!$switch!"=="true" echo %%a
    if /i "%%a"=="PARAMÔTRES UTILISATEURS" set $switch=true
    )
    :next
    echo Termin‚

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup. Mais ton code copie du texte à partir de "PARAMÔTRES UTILISATEURS" jusqu'à la fin, il ne s'arrête pas à "Objets Strat‚gie de groupe appliqu‚s"

    Et quand je change "PARAMÔTRES UTILISATEURS" par autre chose ça ne marche plus du tout, rien ne se passe
    http://www.developpez.net/forums/ima...n_confused.gif

  6. #6
    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
    Je ne sais pas comment tu fais tes tests ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    
    set $switch=false
    setlocal EnableDelayedExpansion
    
    for /f "delims=" %%a in (input.txt) do (
    if /i "%%a"=="Objets Strat‚gie de groupe appliqu‚s" goto:next
    if /i "!$switch!"=="true" echo %%a
    if /i "%%a"=="PARAMÔTRES UTILISATEURS" set $switch=true
    )
    
    :next
    echo Termin‚
    fonctionne parfaitement et tu peux changer "PARAMÔTRES UTILISATEURS" par ce que tu veux que ça va marcher.

    TU DOIS METTRE LA LIGNE COMPLÈTE COMME ARGUMENT DE RECHERCHE !!!!

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    
    set $switch=false
    setlocal EnableDelayedExpansion
    
    for /f "delims=" %%a in (input.txt) do (
    if /i "%%a"=="Objets Strat‚gie de groupe appliqu‚s" goto:next
    if /i "!$switch!"=="true" echo %%a
    if /i "%%a"=="Nom du site............................ : N/A" set $switch=true
    )
    
    :next
    echo Termin‚
    sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Profil itinérant : N/A
    Profil local........................... : C:\Users\kocess
    Connexion via une liaison lente ? : Non
    PARAMÈTRES UTILISATEURS
    ------------------------
    CN=CESS\, Kokora louis David Christian,OU=Utilisateurs,OU=Comptes,OU=CIE,DC=univers,DC=ci
    Heure de la dernière application de la stratégie de groupe : 24/04/2014 à 12:28:
    54
    Stratégie de groupe appliquée depuis : GSEDCSGS2P.univers.ci
    Seuil de liaison lente dans la stratégie de groupe : 500 kbps
    Nom du domaine*: UNIVERS
    Type de domaine : Windows 2000
    Terminé
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Moi ça me copie tout le fichier à partir de "PARAMÔTRES UTILISATEURS". Vérifie encore je t'en prie

  8. #8
    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
    OK

    on va faire comme ça on va tester les 6 premiers caractères pour la sortie. Donc lorsque l'on rencontrera "Objets" on va sortir.
    C'est certainement dû aux accents.

    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 $switch=false
    setlocal EnableDelayedExpansion
    
    for /f "delims=" %%a in (input.txt) do (
    set $l=%%a
    if /i "!$l:~0,6!"=="Objets" goto:next
    if /i "!$switch!"=="true" echo %%a
    if /i "%%a"=="PARAMÔTRES UTILISATEURS" set $switch=true
    )
    
    :next
    echo Termin‚
    Fait un test et retourne.
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Idem. ça copie toujours jusqu'à la fin

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je dois rendre le travail le lundi, je suis sous pression

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ???

  12. #12
    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
    Je n'avais pas vu que tu avais modifié ton fichier d'input :

    Test cela :


    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
    @echo off
    
    set $switch=false
    setlocal EnableDelayedExpansion
    
    for /f "delims=" %%a in (input.txt) do (
    set $l=%%a
    set $l=!$l: =!
    if /i "!$l:~0,6!"=="Objets" goto:next
    if /i "!$switch!"=="true" if defined $l echo %%a
    if /i "%%a"=="PARAMÔTRES UTILISATEURS" set $switch=true
    )
    
    :next
    echo Termin‚
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Tu as été génial. Cela fonctionne. Merci de tout coeur pour ton aide et ta patience. Sujet résolu

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/03/2010, 10h55
  2. [MySQL] Script blocant l'accès à intervalle d'une heure, code correct ou pas ?
    Par Overstone dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/08/2007, 09h03
  3. correction de script perl
    Par donmamio dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2006, 17h38
  4. correction de script
    Par donmamio dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2006, 12h25

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