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 :

Initialiser les variables dun batch à partir d'un fichier de config [Batch]


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Responsable R&D
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable R&D

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Initialiser les variables dun batch à partir d'un fichier de config
    Bonjour,

    Je désire exécuter un batch qui mettra à jour SQL SERVER. Pour cela j'ai crée un script isql pour le faire.

    Le problème s'est que je désire pouvoir paramétrer ce script à partir d'un fichier de config.

    Y a t'il moyen de récupérer les valeurs des variables dans le fichier de config et de les initialiser dans mon scripte.

    Voici mon updater.bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SET LESERVEUR= *****
    SET LABASE = *******
    SET INPUT = ****
    
    isql -U sysadm -P sysadm -S %LESERVEUR% -d %LABASE% -i %INPUT% -o "./resultat.txt" -b -p
    Je veux récupérer les valeurs des variables LESERVEUR LABASE INPUT dans un fichier config.txt.

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 34
    Points
    34
    Par défaut
    Cela dépend de la structure de ton fichier de log.

    As-tu pensé à quelque chose du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "eol=xx; tokens=xx delims=xx" %%N IN (fichier.log) DO set LESERVEUR=%%N

    Eol = valeur : Désigne le caractère fin de ligne
    Delims = valeur : Désigne le caractère séparant les champs du fichier
    Tokens = valeur : Désigne les champs à extraire délimité par Delims

    Personnellement je ne vois pas d'autre moyen...mais je ne suis pas une bête en batch DOS

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Voilà le bout de code qui fait ça :
    Code GetConfig.bat : 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
    @echo off
    REM Activer les extensions, variables locales et l'expansion différée.
    setlocal enableextensions enabledelayedexpansion
    REM Initialisation des variables.
    SET LESERVEUR=
    SET LABASE=
    SET INPUT=
    REM Parcours du fichier de configuration, ligne par ligne.
    for /F "tokens=*" %%I in (config.txt) do (
    	REM On considère que la première ligne non vide sera le serveur.
    	if "!LESERVEUR!"=="" (
    		set LESERVEUR=%%I
    	) else (
    		REM La seconde sera la base.
    		if "!LABASE!"=="" (
    			set LABASE=%%I
    		) else (
    			REM Et la dernière l'entrée.
    			if "!INPUT!"=="" (
    				set INPUT=%%I
    			) else (
    				REM S'il reste des données, on arrête la boucle quoi qu'il en soit.
    				goto :breakloop
    			)
    		)
    	)
    )
    :breakloop
    REM Voici comment utiliser ces variables dans la suite du batch.
    echo Server   : !LESERVEUR!
    echo Database : !LABASE!
    echo Input    : !INPUT!

    Un exemple de fichier de configuration :
    Code config.txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    
    \\SERVEUR
    
    Ma_base 2
    
    
    "Ligne débile pour le prompt et j'ai même pas envie de fermer les guillemets
    
    Cette ligne ne sera jamais vue !
    (Les sauts de ligne sont intentionnels).

    Résultat du batch (mettre les deux fichiers dans le même répertoire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Server   : \\SERVEUR
    Database : Ma_base 2
    Input    : "Ligne débile pour le prompt et j'ai même pas envie de fermer les guillemets

    Comme tu peux le constater, ça digère tout : espaces, caractères plus ou moins spéciaux, etc. Il est possible qu'il subsiste quelques points d'erreur, mais tu as l'essentiel en tout cas.

  4. #4
    Nouveau membre du Club
    Profil pro
    Responsable R&D
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable R&D

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 29
    Points
    29
    Par défaut MERCI
    Merci Mac LAK et reppier s'est parfait je vous raconte pas combien de temps je me suis cassé les dents dessus

    Merci Merci

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par mmahouac Voir le message
    Merci Mac LAK et reppier s'est parfait je vous raconte pas combien de temps je me suis cassé les dents dessus

    Merci Merci
    De rien, merci à toi d'avoir pensé au !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/04/2009, 12h45
  2. FormCreate: Initialiser les variables
    Par yann87 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/06/2008, 10h33
  3. Réponses: 2
    Dernier message: 11/12/2007, 18h42
  4. Réponses: 7
    Dernier message: 22/05/2006, 13h03
  5. [VB.NET] Initialiser les variables
    Par Dnx dans le forum ASP.NET
    Réponses: 8
    Dernier message: 06/04/2005, 16h22

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