Récupération variable vbs en batch

Résolu
Bonjour,
Je voudrais savoir comment faire pour récupérer la valeur entrée dans une inputbox en vbs, dans un .bat.
Est-ce possible, et si oui comment?
Merci d'avance.

3 réponses

  1. Salut !

    Une autre solution (moins "propre" que les paramètres), c'est de passer par un fichier intermediaire qui contient la valeur de la variable "inputbox".

    Le code du fichier VBS :

    dim var, launch, fso, fichier
    
    ' var : valeur inputbox
    ' launch : permet de lancer le bat
    ' fso : permet d'ouvrir un fichier
    ' f : contient information sur le fichier (lecture,ecriture)
    
    var = inputbox("Valeur : ", "Mon_programme.vbs")
    
    ' Permet d'écrire la variable "var" dans un fichier (temp.txt)
    Const ForReading = 1, ForWriting = 2
      Set WshShell = WScript.CreateObject("WScript.Shell")
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set fichier = fso.OpenTextFile("C:\Users\nom_utilisateur\Desktop\temp.txt", ForWriting,true)
       fichier.write("" &var)
    	fichier.close()
    
    
    set launch = CreateObject("WScript.Shell")
    launch.run "test.bat"
    


    Le code du fichier BAT :

    @echo off
    :: On récupère la valeur depuis le fichier "temp.txt"
    set /P VAR=< temp.txt
    :: On supprime le fichier
    del temp.txt
    cls
    echo.
    echo La variable inputbox est : %VAR%
    echo.
    pause
    


    Cordialement
    1
    1. Salut,

      La seul façon que je connaisse c'est de passer ta variable inputbox en argument.

      Dans ton fichier VBS quand tu vas executer ton bat tu mets "monbat.bat " & variableinputbox

      dans ton fichier bat tu recuperes avec %1

      Exemple

      Test.vbs

      Dim WshShell 
      Set WshShell = WScript.CreateObject("WScript.Shell" ) 
      
      variable = InputBox("Entrer une valeur !")
      
      Monfichier = "C:\Users\myaccount\Desktop\test.bat " & variable
      
      WshShell.Run Monfichier


      Test.bat

      echo La variable inputbox est : %1 >> varInput.txt


      Si besoin de plus de renseignements n'hésites pas :)

      Cdlt
      0
      1. Bonjour,
        Et tout d'abord merci pour ton aide.
        J'ai fait comme tu me l'a conseillé mais ça ne marche pas....
        Je suis un peu blonde, mais pour toi Monfichier correspond a quoi? Une variable? J'ai tout essayé même avec le nom du .bat et celui du .vbs mais rien n'y fait.
        As tu une idée?

        Merci d'avance.
        0
        1. Bonjour,

          Pas de soucis ! Monfichier est juste une variable qui contient le chemin de ton fichier *.bat
          Post ton code et je te donnerai la solution.

          Cependant, le nom des script n'ont pas d'importance. La seule chose c'est de bien renseigne le chemin et le nom de ton fichier bat.

          Exemple, si ton fichier bat se nomme "Bidule" est qu'il se situe à la racine de ton C:\ alors la variable Monfichier sera :

          Monfichier = "C:\Bidule.bat " & variable

          Attention, ne pas oublier de faire un espace après le t de .bat pour que la variable soit bien espacée de ton fichier *.bat afin qu'il comprenne que c'est un parametre.

          De plus tu peux faire passer jusqu'a 9 parametres.

          Exemple : Monfichier = "C:\Bidule.bat " & variable1 & " " & variable2 & " " & variable3

          dans ton fichier bat tu les récupère avec %1 %2 %3 etc jusqu'a %9

          J'espère que mon explication est explicite !

          Cordialement.

          nirG
          0
        2. Dans mon premier exemple le fichier bat n'affiche pas le résultat, il le met directement dans un fichier bat.

          Pour juste voir le résultat mets dans le fichier bat ceci :

          @echo off
          echo La variable inputbox est : %1
          echo.
          pause


          Cordialement.
          0