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 :

Menu avec fichier associé


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Menu avec fichier associé
    Bonjour,
    Je cherche à faire un batch qui selon ma reponse va aller chercher des infos dans 2 fichiers differents, avec des informations positionnées sur un meme n° de ligne.

    Et ... je ne sais pas comment faire pour recuperer mes infos.
    Voici deja le batch en question (je me sers d'outils gnuwin32 comme grep/cut/ ...) :
    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
    set STATWEB=d:\Stats
    set POST=c:\PostNT
    set bin=%STATWEB%\bin
    set batch=%STATWEB%\batch
    set srcLogDir=d:\logs\http
    set dstLogDir=%STATWEB%\archive
    set entete=%bin%\entete.txt
    set services=%STATWEB%\test\services.txt
    set tmp=d:\temp
    
    net start|find "PostNT Service"
    if %errorlevel%==0 goto suite
    net start "PostNT Service"
    sleep 5 
    :suite
    
    %bin%\grep "service" postStats.bat | %bin%\grep -v "postit" > %tmp%\liste_service
    %bin%\cut -c13- %tmp%\liste_service > %tmp%\liste_srv
    
    %bin%\grep "IISlogdir" postStats.bat | grep -v "srcLogDir" > %tmp%\liste_repIIS
    %bin%\cut -c15- %tmp%\liste_repIIS > %tmp%\liste_IIS
    
    %bin%\grep "pref" postStats.bat | grep -v "dstFilename" > %tmp%\liste_pref
    %bin%\cut -c10- %tmp%\liste_pref > %tmp%\liste_pr
    
    pause
    
    echo. Voici la liste des services pour %server% :
    echo.
    echo.
    type %tmp%\liste_srv
    echo. 
    SET Choice=
    SET /P Choice=Quel service souhaitez vous reposter ?
    echo %choice%
    en fonction de la reponse contenue dans un premier fichier, et donc a un numero de ligne precis, j'aimerais y associer les autres elements ...

    pour clarifier quand meme, parce qu'a me relire ... c'est pas ça, je souhaite en premier lieu, savoir a quel numero de ligne correspond une occurence, et ensuite avec ce meme numero de ligne, sur un autre fichier, recuperer une info.

    Une idée ?
    Si c'est pas tres clair, je peux re-esspliquer ...

    Merci à tous par avance,
    Pierre

  2. #2
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut binarykult
    et au nom de tous, bienvenue sur le forum developpez.net

    Plus d'explications ne seraient pas inutiles.
    Ça te permettra d'obtenir plus rapidement des réponses adaptées.
    Bonne continuation à toi.


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Tout d'abord merci d'avoir pris mon appel ...
    Pour resumer, voici ce que j'aimerais faire :

    Je possede 3 fichiers "complementaires", qui contiennent des informations sur des services que propose un serveur.

    Pour chaque ligne de chaque fichier correspond une information qui se complemente des deux autres fichiers, sur la meme ligne.

    Pour resumer egalement, voila ce que cela pourrait donner :

    Fic1. Fic2. Fic3.

    Info1_Fic1 Info1_Fic2 Info1_Fic3
    Info2_Fic1 Info2_Fic2 Info2_Fic3
    ... ... ...


    Il faut donc que je recupere, par exemple, toutes les infos correspondant a Info2 (donc en ligne 2), dans chaque fichier, sachant que chaque fichier peut avoir un nombre indefini de lignes.
    Hé ça, a ba je sais pô faire ...

    D'ou mon appel à l'aide : A L'AIDE !!!

    Merci d'avance,
    Pierre

  4. #4
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut binarykult,

    Malgré tes explications complémentaires, ça reste encore un peu flou.
    J'ai cependant relevé quelques phrases clefs comme :

    Citation Envoyé par binarykult
    ...
    je souhaite en premier lieu, savoir a quel numero de ligne correspond une occurence, et ensuite avec ce meme numero de ligne, sur un autre fichier, recuperer une info.
    ...
    Citation Envoyé par binarykult
    ...
    Il faut donc que je recupere, par exemple, toutes les infos correspondant a Info2 (donc en ligne 2), dans chaque fichier
    ...
    IL m'est ainsi possible de te proposer une ébauche: see.cmd
    Reste à toi le soin de l'adapter à tes besoins ou à l'intégrer à tes scripts déjà existants.

    see.cmd
    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
    @echo off
    ::see.cmd by maxi_mum for http://www.developpez.net/forums/forumdisplay.php?f=519
    if "%~fs2"=="" goto fin
    call :lookfic1 %1 %~fs2
    call :lookfic2 %~fs3
    call :lookfic3 %~fs4
    set lgne=
    goto fin
    
    :lookfic1
    FOR /F "tokens=1,* delims=:" %%i in ('findstr /n /i %1 %2') do set /a lgne=%%i-1& set infofic1=%%j& goto :eof
    
    :lookfic2
    if "%1"=="" goto :eof
    FOR /F "skip=%lgne% tokens=*" %%i in (%1) do set infofic2=%%i& goto :eof
    
    :lookfic3
    if "%1"=="" goto :eof
    FOR /F "skip=%lgne% tokens=*" %%i in (%1) do set infofic3=%%i& goto :eof
    
    :fin
    syntaxe: see "occurence" nomfichier1 nomfichier2 nomfichier3
    Tu récupères le contenu des lignes grâce aux variables %infofic1% %infofic2% et %infofic3%



    Exemple:

    script utilisant see.cmd:

    scrpt.cmd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    call see "ligne3" texte1.txt texte2.txt texte3.txt
    echo fichier1: %infofic1%
    echo fichier2: %infofic2% 
    echo fichier3: %infofic3%
    echo.
    pause
    Contenue des fichiers textes de l'exemple:

    texte1.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ligne1
    ligne2
    ligne3
    ligne4
    ligne5
    texte2.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ligne1 du second fichier 
    ligne_2 du second fichier 
    la ligne trois second fichier
    lignenum4 du second fichier 
    lignen5 du second fichier
    texte3.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    blabla1texte3.txt
    blabla2
    enjoy ;)
    etc
    ...
    Voilà Pierre. J'espère que ça t'aura apporté satisfaction.

    enjoy

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 8
    Points
    8
    Par défaut

    FAN-TA-STIQUE.

    Merci beaucoup, j'avais continué a travailler dans mon coin, avec plus ou moins de mal ...
    J'avais fais un ptit truc pour recuperer l'occurence, avec un egrep gnuwin32 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %bin%/egrep -n %srv_rep% %tmp%\liste_srv > %tmp%\num_service
    FOR /F "tokens=1 delims=:" %%a in (%tmp%\num_service) do set nbli=%%a
    Mais je crois que je vais opter pour l'adaptation de ton script

    MERCI encore, et bonne continuation.

    Pierre

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2014, 15h26
  2. Menu avec button fichier avi
    Par bella1989 dans le forum Général VBA
    Réponses: 1
    Dernier message: 05/07/2013, 00h51
  3. Réponses: 2
    Dernier message: 02/06/2012, 15h34
  4. Lancement d'un executable avec fichier associé
    Par EricNO dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/03/2011, 09h04
  5. Réponses: 4
    Dernier message: 25/08/2003, 09h02

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