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

Windows Discussion :

Aide pour un batch windows


Sujet :

Windows

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut Aide pour un batch windows
    Bonsoir a tous,

    voila je cherche un moyen sous forme de batch d'afficher une partie du contenue d'un fichier texte.

    Exemple:

    contenue de c:\test.txt :

    line1 = test1
    line2 = test2
    line3 = test3
    etc...

    et je voudrais pouvoir récupérer dans un batch qui afficherait à l'écran le résultat de la line2 à savoir:
    test2 et uniquement cette valeur pas le reste.

    Si vous avez une idée merci d'avance.

  2. #2
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FOR /F "tokens=1* delims==" %%i in (test.txt) do (
       if "%%i" == "line2 " (
          echo %%j
       )
    )

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    Salut, merci.

    Peux tu m'expliquer un peu c'est un peu complexe pour moi ^^.

  4. #4
    Membre éprouvé
    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
    Par défaut
    tu fait tout simplement:

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    Je veux pas etre désagréable mais ta pas du bien lire la description de ma question.
    Par ce que type test.txt
    et bien il va m'afficher l'integralité du contenu du fichier texte alors que moi je ne veux extraire qu'une valeur dans mon exemple test2.

  6. #6
    Membre éprouvé
    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
    Par défaut
    ah oui, tu peut afficher a partir de la deuxiéme ligne mais je ne sais pas si tu ne peut affichier que le deuxiéme ligne

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Utilise par exemple gawk pour Windows, issu d'un utilitaire bien connu du monde Unix:

    http://gnuwin32.sourceforge.net/packages/gawk.htm

    pour extraire la ligne 2 du fichier c:\exemple.txt, tape:

    gawk "NR==2" c:\exemple.txt

    ou alors, tu écris un petit programme !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    Merci pour cette proposition avec la commande gawk pour ce qui est d'afficher la ligne 2 à savoir dans mon exemple line 2 = test2 cela fonctionne mais pour ma part je ne souhaite récupérer que la valeur test2

    je reprends un exemple concret:

    sous windows xp dans c:\windows\comsetup.txt

    debut de ce fichier texte:

    COM+[10:26:9]: ********************************************************************************
    COM+[10:26:9]: Setup started - [DATE:07,26,2006 TIME: 10:26 pm]
    COM+[10:26:9]: ********************************************************************************
    COM+[10:26:9]: Start OC_INIT_COMPONENT Component = com
    COM+[10:26:9]: INF VERSION (com) = 2001,12,4414,42
    COM+[10:26:9]: Instantiating CMasterNT5Wks
    COM+[10:26:9]: Memory usage for setup process...
    COM+[10:26:9]: PeakWorkingSetSize: 35056 Kb, WorkingSetSize: 26908 Kb
    COM+[10:26:9]: QuotaPeakPagedPoolUsage: 115 Kb, QuotaPagedPoolUsage: 108 Kb
    COM+[10:26:9]: PeakPagefileUsage: 25328 Kb, PagefileUsage: 21416 Kb
    COM+[10:26:9]: MTSS: Answer File =
    COM+[10:26:9]: Calling SetupOpenInfFile.
    COM+[10:26:9]: Unable to open Answer File!!
    COM+[10:26:9]: DRID-39104 -> Path: C:\WINDOWS\Java\Trustlib\
    COM+[10:26:9]: Installed COM product version = 0.0.0.0
    COM+[10:26:9]: SETUP VERSION = 3.0.0.4414
    COM+[10:26:9]: Installation Mode = FRESH

    et bien dans ce cas la je voudrais par exemple sur un choice dans un batch choisir afficher la version de comsetup qui corresponds a la ligne soulignée et en gras italique, donc à l'écran j'aimerais qu'il s'affiche que "3.0.0.4414"

  9. #9
    Membre éprouvé
    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
    Par défaut
    Voici la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f "skip=15 tokens=2 delims==" %%i in ('type comsetup.txt') do echo %%i & goto suit
    :suit

  10. #10
    Membre éprouvé
    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
    Par défaut
    Alor c'est bon ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    for /f "skip=15 tokens=2 delims==" %%i in ('type comsetup.txt') do echo %%i & goto suit
    :suit

    ca me donne


    %%i était inattendu.

  12. #12
    Membre éprouvé
    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
    Par défaut
    c'est bizzare chez moi ça marche

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    erf j'ai pas de bol, je suis sous xp pro et est éxécuté la commande sous la console dos rien de plus..

  14. #14
    Membre éprouvé
    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
    Par défaut
    ah, il faut le mettre dans un fichier.bat

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    C'est effectivement plus simple d'écrire un batch tel que le propose Celcy, mais là je ne peux pas t'aider sous Windows.

    Par contre, en en revenant à gawk, tu peux utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gawk "/SETUP/ {print $5}" comsetup.txt
    qui signifie:
    - rechercher toutes les lignes contenant la chaine SETUP et afficher le 5ème mot

  16. #16
    Membre éprouvé
    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
    Par défaut
    ma boucle for n'affiche que le numéro de la version

  17. #17
    Membre éprouvé
    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
    Par défaut
    alor ta essayer dans un fichier.bat ?

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    Merci à vous deux vos deux commandes fonctionnent pour ce qui est de la commande de koKoTis peux tu me la détailler s'il te plait, merci.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    koKoTis voila exactement ce que m'affiche ta commande dans un ce fichier .bat:

    fichier.bat:

    for /f "skip=15 tokens=2 delims==" %%i in ('type c:\test.txt') do echo %%i
    pause

    contenue du fichier test.txt:

    COM+[10:26:9]: ********************************************************************************
    COM+[10:26:9]: Setup started - [DATE:07,26,2006 TIME: 10:26 pm]
    COM+[10:26:9]: ********************************************************************************
    COM+[10:26:9]: Start OC_INIT_COMPONENT Component = com
    COM+[10:26:9]: INF VERSION (com) = 2001,12,4414,42
    COM+[10:26:9]: Instantiating CMasterNT5Wks
    COM+[10:26:9]: Memory usage for setup process...
    COM+[10:26:9]: PeakWorkingSetSize: 35056 Kb, WorkingSetSize: 26908 Kb
    COM+[10:26:9]: QuotaPeakPagedPoolUsage: 115 Kb, QuotaPagedPoolUsage: 108 Kb
    COM+[10:26:9]: PeakPagefileUsage: 25328 Kb, PagefileUsage: 21416 Kb
    COM+[10:26:9]: MTSS: Answer File =
    COM+[10:26:9]: Calling SetupOpenInfFile.
    COM+[10:26:9]: Unable to open Answer File!!
    COM+[10:26:9]: DRID-39104 -> Path: C:\WINDOWS\Java\Trustlib\
    COM+[10:26:9]: Installed COM product version = 0.0.0.0
    COM+[10:26:9]: SETUP VERSION = 3.0.0.4414
    COM+[10:26:9]: Installation Mode = FRESH
    COM+[10:26:9]: Setup Mode = CUSTO

    résultat de la commande:

    C:\Documents and Settings\*\Bureau>for /F "skip=15 tokens=2 delims==" %i in
    ('type c:\test.txt') do echo %i

    C:\Documents and Settings\*\Bureau>echo 3.0.0.4414
    3.0.0.4414

    C:\Documents and Settings\*Bureau>echo FRESH
    FRESH

    C:\Documents and Settings\*\Bureau>echo CUSTO
    CUSTO

    C:\Documents and Settings\*\Bureau>pause
    Appuyez sur une touche pour continuer...

  20. #20
    Membre éprouvé
    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
    Par défaut
    il faut que tu mette les 4 ligne dans le bat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f "skip=15 tokens=2 delims==" %%i in ('type comsetup.txt') do echo %%i & goto suit
    :suit
    pause>nul

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Batch] Aide pour 3 batchs
    Par greenpumpkin dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 09/11/2011, 05h17
  2. Besoin d'aide pour un batch de sauvegarde incrementale
    Par officielmc dans le forum Scripts/Batch
    Réponses: 17
    Dernier message: 04/05/2011, 08h00
  3. Aide pour tuto de bob sur l'API Windows.
    Par Pierre.g dans le forum Windows
    Réponses: 4
    Dernier message: 31/08/2006, 18h36
  4. aide pour windows nt
    Par gaarafan dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 15/06/2006, 10h39
  5. [VB6]j ai besion d aide pour une API windows
    Par leo13 dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 06/06/2006, 17h49

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