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

VBScript Discussion :

[VBS]appeler un fichier bat


Sujet :

VBScript

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut [VBS]appeler un fichier bat
    je suis en train de mettre en place une nouvelle commande en WHS, qui installe automatiquement un logiciel.
    fonctionnement :

    on appelle la commande en rentrant une valeur en parametre
    ex : Z:> autoinstall.vbs acrobatrea_6

    le logiciel se situe dans => Z:\acrobatrea_6

    Ce que je n'arrive pas à faire c'est appeler le fichier "install.bat" (qui lance l'executable ou le package) qui se situe dans le dossier => Z:\acrobatrea_6\install.bat


    des bout de mon code :

    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
     
    Set ObjArg = WScript.Arguments
    logiciel = ObjArg(I)
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    If (fso.FolderExists(logiciel)) Then
    wscript.echo "le dossier existe"
    install = 1
    Else
    wscript.echo "CE PROGRAMME N'EXISTE PAS "
    install = 0
    End If
     
    if install then
     
    "appeler le fichier batch dans currentdirectory\logiciel\install.bat"
     
    else
    wscript.echo "ERREUR"
    end if

    merci pour votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Shell("cmd /c c:\Chemin\coucou.bat")
    F1 + FAQ + Rechercher
    Tu n'aurais pas eu à attendre

    A+

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    j'ai pas trouver la fonction recherche sur le forum ... dsl

    et ta solution ne fonctionne po

    dans l'appel du .bat je dois utiliser les variables "logiciel" et "curentfldr"

    j'avais un debut de reponse je crois mais ça ne fonctionne pas...

    voila ce que j'ai :

    Set WshShell = WScript.CreateObject("WScript.Shell")
    curentfldr = wshshell.currentdirectory & "\" & logiciel
    curentfldr.Run "cmd /c curentfldr\install.bat"
    *variable logiciel contient => acrobatrea_6
    *variable curentfldr contient => Z:\acrobatrea_6

    merki

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "cmd /c Z:\acrobatrea_6\install.bat"

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    ça va fonctionné mais ici je n'utilise pas les variables de l'utilisateurs

    c'est rentré en dur...




    j'ai peut etre une piste

    je vais essaier de me deplacé dans le dossier pour que mon dossier courant soit : => Z:\acrobatrea_6

    comme ça j'aurai qu'à mettre le code :

    Set WshShell = WScript.CreateObject("WScript.Shell")
    wshshell.Run "install.bat"
    mais j'arrive pas ...


    j'ai essaier ça dans un desespoir totale

    Set WshShell = WScript.CreateObject("WScript.Shell")
    set wshsell.currentdirectory = wshshell.currentdirectory & "\" & logiciel
    mais ça ne marche pas

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben si les variables contiennent le bon texte essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set WshShell = WScript.CreateObject("WScript.Shell")
    curentfldr = wshshell.currentdirectory & "\" & logiciel
    WshShell.Run "cmd /c " & curentfldr & "\install.bat"

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    j'ai l'impression qu'il ne prend que les valeurs qui sont dans les premieres guillemets et non toute la ligne

    j'ai essaier d'ajouter des parenthèses mais toujours pas ...
    j'ai essaier de mettre en variable le chemin complet aussi marche pas...


    dire qu'il me manque plus que ça pour que se soit fini

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si ça ne fonctionne pas essaie de passer par une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LaVar = "cmd /c " & curentfldr & "\install.bat"
    curentfldr.Run LaVar
    Mais je pense que la première syntaxe donnée devrait fonctionner si tu te trouves déjà dans le bon répertoire, ce que me donne à penser ta ligne
    curentfldr = wshshell.currentdirectory & "\" & logiciel
    Simplement, modifie la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call Shell("cmd /c " & curentfldr & "\install.bat")
    A+

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    n'aurai tu pas un probléme sur le contenu de tes variables .. affiche les :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Wscript.echo "cmd /c " & curentfldr & "\install.bat"

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par angelus95
    Set fso = CreateObject("Scripting.FileSystemObject")
    If (fso.FolderExists(logiciel)) Then
    wscript.echo "le dossier existe"
    install = 1

    oui je fait des echo de mes var depuis le debut elles sont ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if install then
    Set WshShell = WScript.CreateObject("WScript.Shell")
    curentfldr = wshshell.currentdirectory & logiciel
    wscript.echo curentfldr & "\install.bat"
    'LaVar = "cmd " & curentfldr & "\install.bat"
    'wshshell.Run LaVar
    'WshShell.Run curentfldr & "\install.bat"
    Call Shell("cmd /c " & curentfldr & "\install.bat")
    le call shell ne fonctionne pas j'avais aussi essaier ces methodes


    le desespoir m'envahie...

  11. #11
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    peut etre que si je met tout mon code ça vous aidera

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Dim MyArray, logiciel, pass, fso, wshshell
     
    Set ObjArg = WScript.Arguments
    logiciel = ObjArg(I)
    syntaxe = " la syntaxe est :  {nomdulogicielcomplet}_{nversion}[sous version]   ///  nom du logiciel est limité a 10 caractères, le numéro de version doit être numérique et comporter 2 caractères"
     
    MyArray = Split(Logiciel, "_", -1, 1)
     
    if len(myarray(0)) > 10 then
     
       wscript.echo "ERREUR!! DE SYNTAXE pour Nom de logiciel"
       wscript.echo " "
       wscript.echo " "
       wscript.echo " "
       wscript.echo syntaxe
       install = 0
     
    elseif len(myarray(1))>2 or not isnumeric(myarray(1)) or install then
     
       wscript.echo "ERREUR!! DE SYNTAXE pour N° de version"
       wscript.echo " "
       wscript.echo " "
       wscript.echo " "
       wscript.echo syntaxe
       install = 0
    else
       install=1
    end if
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
       If (fso.FolderExists(logiciel)) Then
          wscript.echo "le dossier existe"
          install = 1
       Else
           wscript.echo "CE PROGRAMME N'EXISTE PAS "
           install = 0
       End If
     
    if install then
     
       Set WshShell = WScript.CreateObject("WScript.Shell")
       curentfldr = wshshell.currentdirectory & logiciel
       wscript.echo curentfldr & "\install.bat"
       'LaVar = "cmd " & curentfldr & "\install.bat"
       'wshshell.Run LaVar
       'WshShell.Run curentfldr & "\install.bat"
       Call Shell("cmd /c " & curentfldr & "\install.bat")
       'Set WshShell = WScript.CreateObject("WScript.Shell")
       'set wshsell.currentdirectory = wshshell.currentdirectory & "\" & logiciel
     
    else
     
       wscript.echo "ERREUR"
     
    end if
    Edit par ouskel'n'or
    S'il te plait, indente ton code (si wscript le tolère...)

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    moi ce que je comprends pas dans ton code c'est que tu teste si le répertoire contenu dans la variable logiciel existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (fso.FolderExists(logiciel)) Then
    et puis avant de l'utiliser tu y rajoute le répertoire courant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curentfldr = wshshell.currentdirectory & logiciel
    le répertoire n'est pas doublé ?

  13. #13
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    mon script est executé à partir de la racine d'un lecteur mappé
    le lecteur est en faite un point de distrib de logiciel où je stock tout.

    ex => Z: <=== (wshshell.currentdirectory)

    je test ensuite si le dossier du logiciel qu'on veut installer existe

    acrobatrea_6 <==== (logiciel)


    ensuite je fait une variable curentfldr (que j'ai renommé prgfldr ) pour avoir

    Z:\acrobatrea_6 <===== (curentfldr)

    dans ce dossier il y a un fichier .bat qui execute setup.msi <===== c'est là que ça bloque

    j'sais pas si j'ai été claire?


    resumé :

    => il y a une regle de nommage a respecter

    - entré en variable des parametre <= ok
    - séparation des valeurs <= ok
    - test si les valeurs sont correct (regle de nommage) <= ok
    - test si le dossier existe <= ok
    - appelle le fichier batch <= fonctionne pas !!
    - installation <= ok

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    mais c'est ou que cela bloque dans le ".bat" ? comment appelle tu setup.msi dans le .bat ...?

  15. #15
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    mdr non

    ce qui block c'est que j'arrive pas a appeler mon .bat (que j'ai testé qui fonctionne en doubleclickant dessus )

  16. #16
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    j'ai des propositions a faire :

    - appeler le fichier par son chemin complet (logiciel\install.bat) => deja tanté
    - se positionner sur le dossier logiciel et appeler uniquement "install.bat" => ça fonctionne mais j'arrive pas a me positionner sur le dossier logiciel
    - utiliser la variable logiciel dans le fichier bat => je ne crois pas que se soit possible

  17. #17
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par angelus95
    j'ai des propositions a faire :

    - - utiliser la variable logiciel dans le fichier bat => je ne crois pas que se soit possible
    ci s'est possible ... tu peu la passer en paramétre à ton .bat ... puis dans le .bat tu utilise %1 , pour le 1° paramétre

    mais je ne sais toujours pas si ton .bat s'éxécute ou pas ?

  18. #18
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par angelus
    ce qui block c'est que j'arrive pas a appeler mon .bat (que j'ai testé qui fonctionne en doubleclickant dessus )
    mon fichier bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo off
    cls
    AdbeRdr60.exe
    voila

    j'ai pas tout compris pour utiliser ma variable logiciel de mon VB dans un BAT ??





  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    non mais dans ton code ? .. le ".bat" s'exécute ? pour les paramétre tu peu :


    le ".bat"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo off
    cls
    %1\AdbeRdr60.exe
    et son appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WshShell.Run Logiciel & "\install.bat " & Logiciel

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as une explication sur le passage de paramètres à un bat à cette adresse http://www.developpez.net/forums/sho...ram%E8tre+.bat

    pour être plus précis http://www.developpez.net/forums/sho...ram%E8tre+.bat
    Réponse donnée par bbil... déjà...

    A+

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/05/2015, 13h44
  2. Compilation : Appel avant/après de fichier .bat
    Par boboss123 dans le forum NetBeans
    Réponses: 0
    Dernier message: 06/02/2013, 13h56
  3. Réponses: 6
    Dernier message: 15/03/2010, 10h59
  4. fichier bat ou vbs
    Par PhilippeIEP dans le forum VBScript
    Réponses: 16
    Dernier message: 31/10/2008, 13h29
  5. lancer un vbs via un fichier bat sous windows98
    Par olaxius dans le forum VBScript
    Réponses: 5
    Dernier message: 07/12/2006, 11h54

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