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 :

récupération de fichier en fonction de leur contenu


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut récupération de fichier en fonction de leur contenu
    Bonjour,

    J'ai n fichier txt dans un répertoire, et je voudrais récupérer les noms des fichiers qui contiennent sur leur 3ème ligne la valeur 21 qui correspond au 2 premiers chiffres de la ligne.

    Je continue mes recherches sur le forum en parallèle.

    Cordialement

  2. #2
    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
    Si tu me montrer le contenu de ton fichier.txt cela m'aiderai beaucoup

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Ok, pour te montrer le fichier txt, en parallèle j'ai avancé, mais mon code me renvoie tous les fichiers contenant les chiffres 21!!
    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    find "21" "C:\Documents and Settings\yguerin\Bureau\GABARITS\UNION_GABARITS\*.txt" > test.txt
    echo.
    pause
    Mon fichier texte a cette tête là, mais pour cela il faut l'ouvrir avec wordpad sinon c'est tout sur une seule ligne:
    0006 . CA MERCATOR
    1997
    21 6378137.00000 298.257223563
    0

    1.744118 982856.3953
    1154.0000 1553.0000 -1498.0000 -868.0000
    1098.79 749.82 60.0
    Ce qui m'intéresse de récupérer est le 21 en jaune

    Cordialement

  4. #4
    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
    ben alor si le contenu s'affiche sur une seul ligne avec le bloc not, je sais pas si ca va marcher, mais met moi le fichier en piéces joint je vai essayer quelqyue chose

    Un piste pour faire ce que tu veut si ca marche il faut utiliser une boucle for

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Je me penche sur la boucle for et tu trouveras en pièce jointe un exemple de fichier.

    Cordialement
    Fichiers attachés Fichiers attachés

  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
    ben moi j'ai remplacer mon bloc note par metapd, et il y a plusieur ligne, je teste le code

  7. #7
    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
    c'est quoi le nom du fichier ? je ne le trouve pas

  8. #8
    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
    ca ressemblerai a ca:
    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
    @echo off
    
    
    
    for /f "tokens=1* delims=:" %%i in ('findstr /n /r . 0006GA.txt') do set vrNumbLign=%%i& set vrLign=%%j& call :test21
    goto fin
    
    :test21
    
    set vrLign2=%vrLign:~0,2%
    
    if "%vrLign2%"=="21" goto recupChemFch
    
    goto :eof
    
    
    :recupChemFch
    
    set /a vrNumbLign-=3
    
    if %vrNumbLign%==0 (
              for /f "delims=" %%i in ('type 0006GA.txt') do echo %%i& goto :eof 
     ) else (
              for /f "skip=%vrNumbLign% tokens=* delims=" %%i in ('type 0006GA.txt') do echo %%i& goto :eof 
     )
    
    goto :eof
    
    
    :fin
    
    
    
    pause>nul

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci pour ton aide,

    Etant donné que je débute dans le domaine j'aurai eu du mal à réaliser ce genre de chose.

    Par contre, j'ai tenté de remplacer le nom de mon fichier par un *.txt pour qu'il me renvoie tous les fichiers possédant le code 21, mais il m'ouvre une fenêtre DOS qui reste noir?

  10. #10
    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
    ca peut pas marcher avec plusieur txt comme ca, le code n'est pas adapter

    par contre le nom du fichier, tu ne ma pas dit, c'est bien 0006 . CA ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Le nom du fichier est le nom 0006GA.txt, l'entête qu'il y a l'intérieur reprend juste la valeur chiffrée du nom, dans notre cas 0006.

  12. #12
    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
    ah je comprend mieux si le contenu du fichier contien 21 tu récupérer le nom du fichie lui même, alor je vai revoir le code

  13. #13
    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
    voila:
    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
    @echo off
    
    
    
    set vrRepSource=dos
    
    for /r "%vrRepSource%\" %%i in (*.txt) do set vrChmFch=%%i& call :21test
    goto fin
    
    
    :21test
    
    
    
    for /f "tokens=* delims=" %%i in ('type "%vrChmFch%"') do set vrLign=%%i& call :test21
    goto fin
    
    :test21
    
    if "%vrLign:~0,2%"=="21" echo %vrChmFch%
    
    goto :eof
    
    
    :fin
    
    
    
    pause>nul

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Je sais que pour écrire dans un fichier texte le résultat, il faut faire > resultat.txt, mais sur ton code, je ne sais où le placer, j'ai essayé un peu partout, mais le résultat est un fichier texte vide

  15. #15
    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
    Tu veut créer un fichier.txt qui contien les noms des fichiers qui contiennent 21 ? c'est bien ca ?
    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
    @echo off
    
    
    
    set vrRepSource=dos
    
    for /r "%vrRepSource%\" %%i in (*.txt) do set vrChmFch=%%i& call :21test
    goto fin
    
    
    :21test
    
    for /f "tokens=* delims=" %%i in ('type "%vrChmFch%"') do set vrLign=%%i& call :test21
    goto fin
    
    :test21
    
    if "%vrLign:~0,2%"=="21" echo %vrChmFch%
    if "%vrLign:~0,2%"=="21" echo %vrChmFch%>> log_21.log
    
    
    goto :eof
    
    
    :fin
    
    
    
    pause>nul

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Tout à fait!

  17. #17
    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
    donc le code te convient tel quel ?

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    IL y a des chances qu'il me convienne, mais quand je le lance à part l'ouverture d'une fenêtre DOs, il ne se passe rien?

  19. #19
    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
    ben si il t'affiche les noms des fichier contenant 21 puis les inscript dans un log, tu ne le voi pas ?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Le bat se lance, mais je n'obtiens aucuns résultats.
    J'ai une fenêtre DOS vide qui se lance et je ne vois pas de fichier log??

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

Discussions similaires

  1. [Batch] Supprimer des fichiers en fonction de leur date
    Par charlix dans le forum Scripts/Batch
    Réponses: 55
    Dernier message: 05/10/2015, 17h18
  2. [Batch] Renommer des fichiers en fonction de leur contenu
    Par seemax dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 04/04/2012, 14h24
  3. Comment dimensionner JFrame ou JPanel en fonction de leur contenu
    Par L4BiN dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 15/02/2007, 14h49
  4. Réponses: 4
    Dernier message: 03/09/2006, 19h12
  5. Récuperer des fichiers en fonction de leur ancienneté
    Par julien000 dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2006, 17h09

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