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 :

Gestion espace variables


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut Gestion espace variables
    Bonjour à tous!

    Je dois mettre en place hsqldb en service pour les connaisseurs qui s'installent avec inno setup (pour situer le contexte mais osef).

    J'ai dis à inno setup de passer le chemin d'installation choisi en paramètre à un fichier bat.
    Exemple : monfichier.bat C:\Program files

    Et dans le bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set PATHINSTALL=%1
    set EAGLE_MEMEX_BIN=%PATHINSTALL%\lib
    Pour les lignes qui nous intéressent.

    Mon problème est le suivant:
    Si je fais tel quel, et que le chemin passé est ,
    La valeur de PATHINSTALL sera de C:\Program ce qui fausse tout.
    J'ai donc modifié avec des guillemets:
    monfichier.bat "C:\Program files"
    Et dans ce cas là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PATHINSTALL="C:\Program Files"
    EAGLE_MEMEX_BIN="C:\Program Files"\lib
    Ce qui est bien sur faux aussi.
    J'ai essayé plusieurs choses mais là je suis bloqué, je m'en remets donc à vous.... merci d'avance.


    Edit : j'ai essayé de mettre les guillemets à %1 mais j'ai le même souci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    Personne ne peut me renseigner?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Par défaut
    Essaye

    et lors de l'appelle de ton script du passe "c:\progra~1" au lieux de "c:\program files" comme paramètre.

    Ce qui donne "tonscript.bat c:\progra~1" pour l'appelle.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    Impossible malheureusement, c'est inno setup qui passe le paramètre, il passe donc le chemin en entier, impossible de le modifier.

    Je viens de trouver le %~1 au lieu du %1 qui permet de récupérer le paramètre sans guillemets, mais inno setup ne peut même pas rajouter de guillemet au final donc ça m'avance pas!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Par défaut
    Ton problème vient du paramètre que tu passes.

    Si tu passes sans rien d'autre alors ton fichier .bat aura en fait 2 paramètres.
    En effet l'espace que tu laisse entre "c:\program" et "file" fait office de séparateur.
    Tu peux le vérifier dans ton .bat avec %1 et %2.
    %1 aura "c:\program" et %2 "file"

    Si tu veux tout mettre dans le même paramètre il faut que tu passes une chaîne "string" avec espace à l'intérieur
    avec les guillemets.

    Puisque ton inosetup ne permet pas de mettre de guillemets, je te conseil de jouer avec les 2 paramètres.

    Tu peux les concaténer dans ta variable PATH
    Voila j'espère que ça t'aide.


    Ciao

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 934
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 934
    Par défaut
    Dans Inno Setup, les doubles-guillemets doivent être... doublés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: MyProg.bat; Parameters: "-d ""{pf}\MyDir"""
    Le plus simple reste de travailler avec un outil d'édition tel que ISTool.

    Je me demande tout de même pourquoi tu dois passer par une batch pour installer ce progamme plutôt que de tout faire depuis IS

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    Même si je ne l'avais pas dis, j'avais remarqué les deux paramètres sokai, mais je n'arrivais pas à ajouter un string avec espace, et ça serait de la bidouille de toutes façon car si le chemin n'aurait pas d'espace ça ne marcherait surement pas, mais merci quand même!

    Andnotor ta solution marche impeccable, il fallait en fait triplé les guillemets, (un pour le paramètre et deux pour la variable) ce que je n'ai pas vu dans la doc.


    Pour infos si je passe pas par ISTOOL/INNO pour lancer ça c'est qu'il faut lancer un service via un .exe et des paramètres, je l'avais fait directement par INNO mais c'était très instable, si j'arrêtais le service il se supprimais tout seul... donc voilà!

    Un grand merci pour cette solution!

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 934
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 934
    Par défaut
    Le démarrage/arrêt d'un service se fait par net.exe. Je n'a jamais eu de soucis avec Inno Setup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: net.exe; Parameters: "start ""Mon service"""; Flags: runhidden; StatusMsg: Starting the service...;
    ou depuis la section [code]:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExec('open', 'net.exe', 'stop "Mon service"', '', SW_HIDE, ewWaitUntilTerminated, Err);

Discussions similaires

  1. gestion des Variables Sessions
    Par Landolsi dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/02/2007, 13h30
  2. [variables] gestion de variables d'application
    Par Laurent.B dans le forum Java EE
    Réponses: 5
    Dernier message: 15/10/2006, 20h27
  3. Gestion de Variables dans un script
    Par John Lee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2005, 14h17
  4. Méthode optimale gestion nombre variable items?
    Par fredtheman dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 14/08/2004, 20h19
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44

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