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 :

[BATCH] Exécution MSI et attendre fin


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut [BATCH] Exécution MSI et attendre fin
    Salut à tous,

    J'ai créé un fichier test.bat dans lequel je souhaite exécuter l'installation d'un applicatif via un fichier MSI, puis exécuter une autre action une fois cette installation terminée.

    Mon fichier test.bat ressemble à ça:
    msiexec /i postgresql-8.2.msi
    call test2.bat
    pause
    Mon fichier test2.bat fait simplement un affichage
    echo TEST2
    Le problème est que le fichier test2.bat est exécuté avant que test.bat ne me rende la main, juste après son exécution. Je vois ceci car mon wizard est à peine lancé alors que TEST2 est déjà affiché dans la console...

    J'ai regardé ça et là sur le net et j'ai trouvé une commande start qui est censée rendre à la main uniquement à la fin de l'exécution, comme suit:
    start msiexec /i postgresql-8.2.msi
    call test2.bat
    pause
    mais qui semble ne pas fonctionner.

    Auriez-vous une solution à mon problème ?

    Merci à tous

  2. #2
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut,

    Tu dois simplement ajouter le paramètre /wait (/w) à ta commande start

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Salut et merci pour ta réponse,

    Cela ne marche pas mieux.
    Avec la commande
    start /wait msiexec /i postgresql-8.2.msi
    call test2.bat
    pause
    comme avec la commande
    start /w msiexec /i postgresql-8.2.msi
    call test2.bat
    pause
    le setup d'install se lance et l'affichage TEST2 se fait dans la foulée...alors que j'ai mon install à l'écran...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    N'existe-t-il pas un moyen de stocker le retour de start msiexec /i postgresql-8.2.msi dans une variable et de tester la valeur de cette variable pour lancer la suite.

    Du style
    var ret = start msiexec /i postgresql-8.2.msi

    while ret<>1 then
    call test2.bat
    end;
    Merci

  5. #5
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    bizarre

    essais ceci alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start /wait postgresql-8.2.msi
    sinon pour connaitre toute les commandes de msiexec c'est

    enfin il te reste encore la possibilité de regarder si msiexec n'est plus en cours d'exécution avec «TaskList»

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Même comportement, il lance le premier écran d'install de postgreSQL puis affiche TEST2 dans la console alors que l'install n'a pas commmencée...

  7. #7
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Même sur le site officiel, ils utilisent le même type de commande. Cela dit pour expliquer ton problème, il faudrait regarder de plus près le fonctionnement du package que tu as entre les mains, je pense que ta version n'est qu'une archive, qui une fois décompressée, lancerait un autre processus qui lui serait chargé de l'installation. Celà pourrait expliquer le comportement de la commande start /wait, mais sans un véritable contrôle, ça ne reste qu'une hypothèse.

    Dans ces conditions, je te propose deux solutions : décompacter ton package msi et identifier le programme (setup.exe?) chargé de l'installation, enfin lancer l'installe via la commande start /w setup.exe ....
    Dans ce contexte, le dossier contenant les fichiers décompressés remplace ton package msi.

    La deuxième solution, je t'en ai parlé plus haut, grâce à taskmanager tu repères le processus qui se lance pendant l'installe, processus que tu devras surveiller avec «tasklist» pour t'assurer de la fin de l'installation.

    Voilà, c'est tout ce que je peux te dire avec les informations que tu as transmis.

    Bonne continuation.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Salut et merci pour ta réponse.
    Comment peut-on décompresser un MSI et voir son contenu ?

  9. #9
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Comme ici le but est de simplement récupérer les fichiers d'installations, le plus simple, c'est de lancer (amorcer) l'installation depuis le package msi. Une fois que tu es sur la page qui t'invite à accepter le Contrat de Licence d'Utilisateur Final ( ou une boitte de dialogue avec un bouton suivant), tu peux te rendre dans le répertoire temporaire (%temp%) et ainsi récupérer les fichiers d'installation fraichement décompressés. Une fois ceci fait, tu peux annuler l'installation que tu avais préalablement amorcée.

    enjoy.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Bonjour à tous,

    Je reprends la conversation que nous avions eu à propose de l'exécution d'un msi à partir d'un fichier batch.

    Le .msi à exécuter est l'install de PostgreSQL.
    Le problème est que le lancement depuis le fichier .bat me rend la main dès le msi lancé ce qui fait que le msi continue son installation en parrallèle...

    Y'aurait-il un moyen d'empêcher cela ??

    Merci à tous

Discussions similaires

  1. Attendre fin d'exécution d'un processus sous vb6
    Par dev-man dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/08/2007, 13h32
  2. [Batch] attendre fin d'execution d'un msi
    Par meda dans le forum Windows
    Réponses: 2
    Dernier message: 06/12/2006, 14h55
  3. attendre fin root
    Par cada01a dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2006, 18h29
  4. attendre fin opération
    Par Seb4657 dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2006, 15h25
  5. [MFC] attendre fin de demarrage d'un processus
    Par pitch21 dans le forum MFC
    Réponses: 16
    Dernier message: 14/10/2004, 09h35

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