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 :

Lire une certaine ligne d'un fichier ini [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut Lire une certaine ligne d'un fichier ini
    Bonjour !

    Tout d'abord, je tiens à préciser que je suis un néophyte en matière de rédaction de batch
    J'ai écris mon premier batch qui me permet de récupèrer l'espace disque de tout les postes d'un serveur.

    J'en rédige actuellement un second qui concerne la récupération de l'espace d'une messagerie mais c'est plus complexe.

    Cependant, je n'y arrive pas.

    Il faut que je lise un fichier ini avec un batch et que je trouve dans ce fichier la ligne qui commence par une chaine de caractère bien précise. Une fois cette chaine trouvée, je dois prendre cette ligne et effectuer plusieurs choses. Je m'explique :

    Exemple : Je cherche la chaine 'paulou=' dans le fichier suivant nommé toto.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    zaezaea=sdsqdqd
    hfghfghfgh=sfsdfdss
    polou=tititata
    .
    .
    .
    dfsfsf=eree
    Une fois cette ligne trouvée, j'en enleve les caractères qui sont avant le signe '=' et le '=' lui même ( Les 6 premiers caractères pour simplifier les choses car cette chaine est de taille fixe ).

    J'ai donc ma chaine "polou=tititata" que je transforme en "tititata"

    Ensuite, je la concatène dans une autre chaine au format de variable. ( Cette variable contiendrait un chemin, pour votre gouverne du type 'C:\gniagnia\gniagnia\' et on y mettrais la suite 'tititata' ).

    Depuis cette variable ( qui est donc un chemin vers un fichier ) je souhaite extraire la taille du fichier et le nom de l'utilisateur logé. ( ça, je sais que c'est dans %username% !!! ) et renvoyer le tout sur deux lignes dans un fichier txt. ( echo %username% >> fichier.txt, echo taille_fichier >> fichier.txt )

    Je ne veux pas forcément une solution toute faite, mais pourriez vous m'aiguiller sur les grandes lignes de ce que je veux obtenir ?

    Bien cordialement.

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Voici un petit bout de code qui fait ce que tu désire
    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
    @setlocal enableextensions enabledelayedexpansion
    @echo off
    set file=filename.ini
    set area=[Section]
    set key=Key
    set currarea=
    for /f "delims=" %%a in (!file!) do (
        set ln=%%a
        if "x!ln:~0,1!"=="x[" (
            set currarea=!ln!
        ) else (
            for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
                set currkey=%%b
                set currval=%%c
                if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
                    echo !currval!
                )
            )
        )
    )
    endlocal
    Voici ce que l'on peut proposer comme solution

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Merci beaucoup
    Je vais essayer de comprendre ceci et de l'adapter ( l'écriture dans le fichier texte par exemple )

    Cordialement.

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

Discussions similaires

  1. Lire uniquement certaines lignes d'un fichier
    Par tomasi dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 26/03/2021, 10h02
  2. supprimer une certaine ligne d'un fichier
    Par morphemia dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2011, 20h35
  3. Lire une seule ligne dans un fichier XML
    Par amine1980 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 27/04/2011, 13h49
  4. [Débutant] rentrer dans une certaine ligne d'un fichier texte Possible?
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/04/2010, 00h16
  5. Comment lire une seul ligne d'un fichier texte?
    Par Julien1987 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/01/2007, 13h36

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