Récupération variable vbs en batch

Résolu/Fermé
shaly07 - Modifié par shaly07 le 6/08/2010 à 15:31
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 - 11 août 2010 à 17:20
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.



A voir également:

3 réponses

Utilisateur anonyme
11 août 2010 à 12:31
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
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32
Modifié par nirG95 le 9/08/2010 à 19:30
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
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
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32
11 août 2010 à 17:16
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
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32
11 août 2010 à 17:20
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