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érer la première ligne d'un fichier txt


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut Récupérer la première ligne d'un fichier txt
    Bonjour,

    Voici ce que je veux faire. Il faut que j'arrive à extraire la première ligne d'un fichier txt quelconque pour la stocker dans une variable. Après cela, je me servirai de cette variable pour créer un nom de fichier.
    Je dois faire ça pour le boulot. J'ai passé la journée dessus. Je pense sincèrement avoir consulté tous les forums possibles et imaginables. J'ai trouvé plusieurs codes qui se ressemblent beaucoup mais je n'arrive absolument pas à les faire fonctionner, que ce soit à partir d'un fichier batch ou directement dans la commande Windows.
    Est-ce que quelqu'un pourrait me donner un code qu'il sait être juste et m'expliquer ce à quoi correspondent toutes les étapes du code ?

    En vous remerciant par avance.
    @+ Boris.

  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,

    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
    @echo off&cls
    
    :::Récup. de la première ligne dans la variable %ligne%
    :::A la place de TON_FICHIER met le nom de ton fichier réel
    
    set /p ligne=<TON_FICHIER.txt
    
    echo La première ligne est  : %ligne%
    
    :::Création du fichier %ligne%.txt
    
    echo www.bbat.forumeiros.com>%ligne%.txt
    
    echo If exist %ligne%.txt (echo FICHIER %ligne%.txt CREE AVEC SUCCES)
    
    pause
    Amicalement

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour ta reponse. J'ai essaye cette ligne la:

    set /p ligne=<TON_FICHIER.txt

    Ca marche comme il faut donc ca c'est cool.
    En revanche, je n'arrive pas a utiliser la variable ligne pour l'inserer dans un nom. En realite, je n'arrive meme pas a l'afficher avec un echo. Pourtant j'utilise bien %ligne%.
    En fait, ce que je veux faire, c'est supprimer un fichier avec une commande du type:

    del C:\blabla.%ligne%

    sachant que dans ligne, il y a une expression du genre:

    blabla.txt

    Je suis desole de ne pas mettre d'accent mais je suis sur un clavier allemand et je n'ai pas trop envie de me prendre la tete a chercher ca maintenant. ^^

  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
    Ca te dit quoi ? lorsque tu fais :


  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Voila mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set counter=0
    
    for %%i in ("repertoire\*.txt") do (
    set /a counter+=1
    )
    
    if %counter% EQU 7 (
    dir \B "repertoire\*.txt" > "fichier.txt"
    set /p oldest_back_up=<"fichier.txt"
    )
    Tout ceci est dans un fichier Batch bien entendu.
    Jusqu'ici, toutes ces lignes de codes fonctionnent. Je les ai testées séparément.

    Quand je modifie le if en ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if %counter% EQU 7 (
    dir \B "repertoire\*.txt" > "fichier.txt"
    set /p oldest_back_up=<"fichier.txt"
    set oldest_back_up
    pause
    )
    il me donne bien ce que j'attends, à savoir

    oldest_back_up='premiere ligne de mon fichier.txt'

    Par contre, si je change le if en ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if %counter% EQU 7 (
    dir \B "repertoire\*.txt" > "fichier.txt"
    set /p oldest_back_up=<"fichier.txt"
    echo %oldest_back_up%
    pause
    )
    il ne me renvoi rien. Il me dit juste que la commande echo est activée.

    A terme, moi je voudrais que mon if soit ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if %counter% EQU 7 (
    dir \B "repertoire\*.txt" > "fichier.txt"
    set /p oldest_back_up=<"fichier.txt"
    del "repertoire\%oldest_back_up%"
    )
    Il faut savoir que oldest_back_up contient un string du genre:

    blabla.txt

    L'extension est donc déjà comprise dans le string.
    Quand je lui demande de faire le if avec le del, il ne me supprime pas le fichier texte que je veux mais tous les fichiers de mon répertoire.

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Par contre, si je tape ca dans la commande windows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set /p oldest_back_up=<"fichier.txt"
    echo %oldest_back_up%
    ca marche nikel....

  7. #7
    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
    Jusqu'ici, toutes ces lignes de codes fonctionnent. Je les ai testées séparément.
    Je crois qu'il y en une que t'as pas testé, correctement !

    Fait un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dir /B "repertoire\*.txt" > "fichier.txt"
    et non pas un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir \B "repertoire\*.txt" > "fichier.txt"
    et ça devrait fonctionner

    Amicalement

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    J'ai tapé le code à la main au lieu de le copier-coller. J'étais sur deux ordi en même temps.
    Dans mon code, j'ai bien mis /B.

  9. #9
    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 comprend pas pourquoi tout à l'air OK.

    Essaye cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    setlocal enabledelayedexpansion enableextensions
    
    set $c=1
    for /f "delims=" %%a in (fichier.txt) do (if !$c!==1 (set $ligne=%%a
                                                          goto next))
    
    :next
    echo !$ligne!
    Amicalement

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Ca ne marche pas non plus. Je ne comprends pas.

Discussions similaires

  1. [Débutant] Supprimer la première ligne d'un fichier .txt
    Par Rymaya dans le forum C#
    Réponses: 9
    Dernier message: 21/12/2012, 02h41
  2. Réecrire la première ligne d'un fichier txt
    Par ben_maury dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2009, 10h37
  3. Récupérer les X dernières lignes de mon fichier txt
    Par coincoin22 dans le forum Windows
    Réponses: 0
    Dernier message: 08/08/2007, 15h39
  4. Récupérer la première ligne d'un fichier
    Par nicolas66 dans le forum MATLAB
    Réponses: 3
    Dernier message: 15/02/2007, 00h08
  5. [VB.NET]Supprimer première ligne d'un fichier TXT
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/11/2006, 17h03

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