Récupération variable vbs en batch

Résolu/Fermé
Signaler
-
Messages postés
291
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
-
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


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
291
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
31
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
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.
Messages postés
291
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
31
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
Messages postés
291
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
31
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.