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 variables dans un fichier INI


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Récupération de variables dans un fichier INI
    Bonjour,
    je cherche depuis un moment mais sans résulat. Je viens donc demander votre aide svp.

    Lorsque mon fichier ini (conf.ini) est constitué de seulement 2 variables comme ceci:

    1)Repertoire et fichier source=base test
    2)Nom du serveur=test
    mon batch solu1.bat se présentant comme ceci:

    REM #-------------------------------#
    REM # V,rifie l'existence #
    REM # du fichier conf.ini #
    REM #-------------------------------#
    :Verifini
    IF NOT EXIST Conf.ini (
    ECHO Fichier Conf.ini introuvable
    PAUSE
    EXIT)

    REM #---------------------------------------#
    REM # Récuperation des variables #
    REM # contenues dans conf.ini #
    REM #---------------------------------------#
    :Init
    FOR /F "EOL=2 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRC=%%I
    FOR /F "EOL=1 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRV=%%I
    je fais un echo sur SRC et SRV et me redonne bien les bonnes variables.

    mais lorsque je veux en mettre plus que 2 c'est à dire 3 , là ça ne fonctionne pas.
    Dans mon nouveau fichier INI je fais:

    1)Repertoire et fichier source=base test
    2)Nom du serveur=test
    3)Processus=Monprocessus
    Et dans mon batch je fais:

    REM #-------------------------------#
    REM # V,rifie l'existence #
    REM # du fichier conf.ini #
    REM #-------------------------------#
    :Verifini
    IF NOT EXIST Conf.ini (
    ECHO Fichier Conf.ini introuvable
    PAUSE
    EXIT)

    REM #---------------------------------------#
    REM # Récuperation des variables #
    REM # contenues dans conf.ini #
    REM #---------------------------------------#
    :Init

    FOR /F "EOL=3 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRC=%%I
    FOR /F "EOL=2 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRV=%%I
    FOR /F "EOL=1 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRA=%%I

    echo %SRA%
    echo %SRC%
    echo %SRV%
    voilà le résultat que j'obtiens donc:

    Monprocessus
    test
    Monprocessus

    quand je regarde les résultats des commandes à 2 variables les données misent dans les variables sont bonnes , mais à 3 sur une même commande j'ai 2 SET qui se font ce qui me donnent des variables completmeent fausse.

    Quelqu'un aurait t'il une idée svp?

    En vous remerciant par avanceBonjour,
    je cherche depuis un moment mais sans résulat. Je viens donc demander votre aide svp.

    Lorsque mon fichier ini (conf.ini) est constitué de seulement 2 variables comme ceci:

    1)Repertoire et fichier source=base test
    2)Nom du serveur=test
    mon batch solu1.bat se présentant comme ceci:

    REM #-------------------------------#
    REM # V,rifie l'existence #
    REM # du fichier conf.ini #
    REM #-------------------------------#
    :Verifini
    IF NOT EXIST Conf.ini (
    ECHO Fichier Conf.ini introuvable
    PAUSE
    EXIT)

    REM #---------------------------------------#
    REM # Récuperation des variables #
    REM # contenues dans conf.ini #
    REM #---------------------------------------#
    :Init
    FOR /F "EOL=2 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRC=%%I
    FOR /F "EOL=1 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRV=%%I
    je fais un echo sur SRC et SRV et me redonne bien les bonnes variables.

    mais lorsque je veux en mettre plus que 2 c'est à dire 3 , là ça ne fonctionne pas.
    Dans mon nouveau fichier INI je fais:

    1)Repertoire et fichier source=base test
    2)Nom du serveur=test
    3)Processus=Monprocessus
    Et dans mon batch je fais:

    REM #-------------------------------#
    REM # V,rifie l'existence #
    REM # du fichier conf.ini #
    REM #-------------------------------#
    :Verifini
    IF NOT EXIST Conf.ini (
    ECHO Fichier Conf.ini introuvable
    PAUSE
    EXIT)

    REM #---------------------------------------#
    REM # Récuperation des variables #
    REM # contenues dans conf.ini #
    REM #---------------------------------------#
    :Init

    FOR /F "EOL=3 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRC=%%I
    FOR /F "EOL=2 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRV=%%I
    FOR /F "EOL=1 TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO SET SRA=%%I

    echo %SRA%
    echo %SRC%
    echo %SRV%
    voilà le résultat que j'obtiens donc:

    Monprocessus
    test
    Monprocessus

    quand je regarde les résultats des commandes à 2 variables les données misent dans les variables sont bonnes , mais à 3 sur une même commande j'ai 2 SET qui se font ce qui me donnent des variables completmeent fausse.

    Quelqu'un aurait t'il une idée svp?

    En vous remerciant par avance

  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,

    Peux-tu poster le contenu de ton fichier INI et la position ou le nom des valeurs que tu veux récuperer, pour que ce soit un peut plus clair.

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Mon fichier ini :

    1)Repertoire et fichier source=base test
    2)Nom du serveur=test
    3)Processus=Monprocessus


    et le nom que je veux récupérer est ce qui se trouve après le égal.

    merci par avance

  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
    Salut luffy,

    Voilà le code qui te récupère tout ce qu'il y a après le caractère "="
    sur chaque ligne.(sur autant de ligne que ton fichier conf.ini en contient)

    Ensuite tu set ta variable suivant le numéro de ligne en utilisant un compteur
    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
    
    setlocal enabledelayedexpansion enableextensions
    
    set compte=1
    
    for /f "delims=" %%i in (conf.ini) do (
                                           for /f "tokens=1,2 delims==" %%a in ("%%i") do (
                                                                                           if !compte!==1 set SRC=%%b
                                                                                           if !compte!==2 set SRV=%%b
                                                                                           if !compte!==3 set SRA=%%b)
    				       set /a compte=!compte!+1)
    
    echo %SRA%
    echo %SRC%
    echo %SRV%
    
    
    :end
    
    endlocal
    pause
    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    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
    En Modifiant ton code de cette manière cela fonctionne également.
    Cela évite une boucle FOR et est donc plus rapide.

    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
    @echo off
    
    setlocal enabledelayedexpansion enableextensions
    
    set compte=1
    
    FOR /F "TOKENS=2 DELIMS==" %%I IN (Conf.ini) DO (if !compte!==1 set SRC=%%I
                                                     if !compte!==2 set SRV=%%I
                                                     if !compte!==3 set SRA=%%I
                                                     set /a compte=!compte!+1)
    
    
    echo !SRA!
    echo !SRC!
    echo !SRV!
    
    :end
    endlocal
    pause
    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. [Batch] Récupération d'une variable dans un fichier txt
    Par killgones dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 09/07/2014, 09h17
  2. Réponses: 2
    Dernier message: 24/04/2014, 15h38
  3. Récupération de variables dans un fichier INI
    Par luffy324 dans le forum VBScript
    Réponses: 3
    Dernier message: 11/01/2013, 12h03
  4. DTS : variable dans un fichier .INI
    Par nsjnsj dans le forum Outils
    Réponses: 0
    Dernier message: 26/10/2010, 12h21
  5. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16

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