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,

    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
    2. 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