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 :

Erreur au niveau d'un if [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Points : 46
    Points
    46
    Par défaut Erreur au niveau d'un if
    Bonjour,

    J'ai fait une fonction qui permet de concaténer plusieurs path dans une variable.

    Au niveau du if ça plante je sais pas pourquoi. La fonction process3 est appelé dans un for (je boucle sur les fichiers sql)

    Vous avez une idée ?

    Merci.

    Code 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
     
    set "SQLFiles="
     
    :: Concatene le chemin d'un fichier SQL dans la variable SQLFiles
    :process3
    	set "deliveryScriptLocation=%cd%"
    	set "nameSQL=%1"
     
    	set "SQLFilePath=%deliveryScriptLocation%\%nameSQL%"
     
    	set "SQLFilesTmp=%SQLFiles%"
     
    	if [%SQLFiles%] neq [] set "SQLFiles=%SQLFilesTmp% "
     
    	set "SQLFilesTmp=%SQLFiles%"
     
    	set "SQLFiles=%SQLFilesTmp%%SQLFilePath%"
     
    	goto:eof
    :endProcess3

  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,

    ta logique est assez étrange :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     set "SQLFilesTmp=%SQLFiles%"
    	
    	if [%SQLFiles%] neq [] set "SQLFiles=%SQLFilesTmp% "
    	
    	set "SQLFilesTmp=%SQLFiles%"

    Tu SET SQLFilesTMP a SQLFILES ensuite si SQLFiles n'est pas vide tu SET SQLFiles a SQLFilesTmp. Si SQLFiles est Vide SQLFilesTmp le sera aussi.
    Donc ton test IF ne sert absolument à rien car la condition ne sera JAMAIS réalisé.

    Et pour finir tu SET de nouveau SQLFilesTmp a SQLFiles

    C'est le serpent qui se mord la queue ton code.

    ça doit être la source de ton problème.

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse.

    Exemple:

    Imaginons j'ai 2 fichiers SQL dans un répertoire Temp

    "C:\Temp\file1.sql"
    "C:\Temp\file2.sql"

    Je veux à la fin une variable SQLFiles avec "C:\Temp\file1.sql C:\Temp\file2.sql"

    En gros je voulais faire un truc du genre SQLFiles += SQLFilePath mais je trouve pas dans ce langage.

    du coup je fais SQLFilesTmp = SQLFiles

    SQLFiles = SQLFilesTmp + SQLFilePath

    Si ta une solution plus simple je veux bien ^^

    Ou alors supprimer le dernier caractère d'une chaîne de caractères

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Points : 46
    Points
    46
    Par défaut
    J'ai supprimé le dernier caractère du coup.

    Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set "AllSQLFiles=%SQLFiles:~0,-1%"

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2007, 11h42
  2. Réponses: 11
    Dernier message: 11/11/2006, 12h20
  3. [VBA] erreur au niveau du code
    Par torNAdE dans le forum Access
    Réponses: 9
    Dernier message: 26/07/2006, 14h33
  4. [phpBB] Erreur au niveau de la base suite à mise à jour
    Par Goundy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 05/03/2006, 14h50
  5. [EJB] Erreur au niveau de la récuperation du home
    Par ujoodha dans le forum Java EE
    Réponses: 3
    Dernier message: 05/10/2005, 13h50

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