Tester une variable

Résolu
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013 - 7 mars 2006 à 01:13
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013 - 7 mars 2006 à 23:36
Bonjour, je voudrai pour un vbs tester une variable, s'il elle existe on ne fait rien elle si elle n'éxiste pas on la créer, quelqu'un saurait-il m'aider ?

9 réponses

lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 23:36
J'ai enfin trouver, ceci est parfait:

Set objArgs = WScript.Arguments


For I = 0 to objArgs.Count - 1
VarAgmt = (objArgs(I))
Next



If objArgs.Count > 0 Then
VarTest = VarAgmt
Else
VarTest = "Ici le contenu par défaut de la variable si elle n'existe pas dèjà"
End If


Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")


If objFSO.FolderExists(VarTest) Then
MsgBox VarTest
Else
MsgBox VarTest
End If

Merci encore pour votre patience
3
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
7 mars 2006 à 01:21
Tu es très inventif, ce soir, et je trouve que ton pseudo est impec....
Que vas-tu chercher encore ???
Explique plutôt ce que tu veux faire....

Alain 31
0
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 01:42
Re, je profite que je suis sur un script VBS pour poser quelque question dans la foulé.

Je suis entrain de faire un VBS qui agira ou bien si on le bouble clique lui même ou bien par un batch, un paramétres lui sera ransmi pas le batch puis placé dans une variable, mais si le VBS et directment double cliquer sans passer par le batch un valeur par défaut dévra petre atribuer à la variable, j'ai trouver quelsue chose:

Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(VarTest) Then
'Wscript.Echo "The folder exists."
Else
VarTest = "Ici le contenu de la variable si elle n'éxiste pas dèjà"
End If


MsgBox VarTest

Sa marche bien comme sa, je crois que j'ai créer se poste pour rien, si j'ai un souci je revien.

Je ne vous remercrai jamais assez.
0
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 02:21
Me revoila.

Donc je test avec un scrip qui soit récupérer le paramétre dans la variable VarTest, si aucun paramétre n'est transmi au VBS la valeur par desfaut d la variable lui sera atribué:

Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
VarTest = objArgs(I)
Next
''''''''''''''''''''''''''''''''''''''''''''''''
Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(VarTest) Then
'Wscript.Echo "The folder exists."
Else
VarTest = "Ici le contenu par défaut de la variable si elle n'éxiste pas dèjà"
End If
''''''''''''''''''''''''''''''''''''''''''''''''
MsgBox VarTest

Mais sa ne fonctionne pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 mars 2006 à 09:28
Salut.





S'il y a plusieurs paramètres passés, tu ne récupéreras que le dernier
dans varTest (avec ton code tel qu'il est écrit (Boucle For)).



For I = 0 To objArgs.Count - 1

VarTest = objArgs(I)

Next

Ce que tu as fait : Tu parcours tous les elements, et tu les places
dans varTest. Quand le dernier paramètre aura écrasé l'avant dernier,
tu te retrouvera avec le dernier paramètre dans varTest





S'il ne doit y en avoir qu'un seul (au maximum), alors tu dois t'y prendre autrement :





If objArgs.Count > 0 Then

VarTest = objArgs(1)

Else

' Il n'y a pas de paramètre.

VarTest = "Ici le contenu par défaut de la variable si elle n'existe pas dèjà"

End If



Set objNetwork = CreateObject("Wscript.Network")

strUser = objNetwork.UserName

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(VarTest) Then

Wscript.Echo "The folder exists."

Else

Wscript.Echo "Bad parameter. The folder does not exist."

End If


Manu
0
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 19:34
Bonjour, et merci encore, mais votre script me renvoi une erreur à la ligne 1

Obje requis: 'objArgs'
0
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
7 mars 2006 à 23:00
Il faut toujours précéder le script avec :
Set objArgs = WScript.Arguments

(Faut suivre un peu)
Alain 31
0
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 23:09
Bonsoir, donc l'ai modifier:

Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then
VarTest = objArgs(1)
Else
' Il n'y a pas de paramètre.
VarTest = "Ici le contenu par défaut de la variable si elle n'existe pas dèjà"
End If


Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(VarTest) Then
Wscript.Echo "The folder exists."
Else
Wscript.Echo "Bad parameter. The folder does not exist."
End If

Donc si je double clique directement le vbs le message "Bad parameter. The folder does not exist." est bien afficher, mais si je fait gliqqer un fichier sur le vbs un message d'erreur indique "Indice en dehors de la plage"
0
lunnatick Messages postés 175 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 28 octobre 2013
7 mars 2006 à 23:28
Ce code le est presque bon:

Set objArgs = WScript.Arguments


If objArgs.Count > 0 Then
VarTest = objArgs(1)
Else
VarTest = "Ici le contenu par défaut de la variable si elle n'existe pas dèjà"
End If


Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")


If objFSO.FolderExists(VarTest) Then
MsgBox VarTest
Else
MsgBox VarTest
End If

Le seul probléme s'est que "VarTest = objArgs(1)" ne prend pas le glisser déposer.
0
Rejoignez-nous