Enchainement de VBScript

Résolu
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008 - 3 juil. 2006 à 16:41
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008 - 4 juil. 2006 à 12:20
Bonjour,

j'aurais aimé savoir si on avait la possibilité de faire des enchainements de scripts (ça je sais que ça fonctionne...  ) en incluant une tempo ou un truc du genre pour que le 1er script se termine avant de lancer le deuxième etc...

J'espère que je suis clair, merci d'avance.

12 réponses

Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
4 juil. 2006 à 12:20
Heu, ça marche mais il ne faut pas, dixit un spécialiste, ça peut planter le système....
<tt>La fonction "RUN" de l'objet Shell permet d'exécuter n'importe
quoi jusqu'à ce qu'il soit terminé (ou non) :

Const SW_HIDE=0
Const SW_SHOWNORMAL=1
Const Wait = TRUE
Const Immediat = FALSE
Set shell = WScript.CreateObject("WScript.Shell")
...
...
Shell.run Commande1, SW_SHOWNORMAL, Wait
...
Shell.run Commande2, SW_HIDE, Wait
...
...
Shell.run Commande3, SW_SHOWNORMAL, Immediat
...</tt>
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 juil. 2006 à 18:22
Salut,

Tu mets les appels dans un fichier .bat

wscript.exe monvbs

Ou tu fais un fichier .vbs

et tu enchaines les appels

exemple
Set WshShell = WScript.CreateObject("WScript.Shell")
wshShell.run("e.vbs")

Voila
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
3 juil. 2006 à 20:31
 Bonsoir,

Effectivement, via vbs, il y a possibilité de lancer x scripts.

Exemple ci-dessous, si day=friday...

If Weekday(Date) = 6 Then
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Exec "c:\WINDOWS\system32\wscript.exe c:\Controle_occupation_Bibliotheques.vbs"   ' pour XP
End If

jean-marc
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
3 juil. 2006 à 21:10
Bonsoir,

En fait, pour tout vous dire (comme ça on comprend mieux.... ), j'ai un script de logon, qui en appel un deuxième mais j'aimerais que le deuxième se termine avant que le premier puisse continuer son boulot.
Pour cause, le deuxième script monte des lecteurs réseau pour des diffusions d'appli communes et démonte les lecteurs à la fin.
Seulement, il me démonte également les lecteurs spécifiques, montés par le premier scritpt (après enchainement du deuxième) et là, du coup, c'est pénible....
J'espère que vous cernez mieux mon problème, je viens de récupérer mon cerveau, c'est mieux pour les explications.
0

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

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
3 juil. 2006 à 21:57
 Bonsoir,

Dans le 1er ou 2ème script, avec un mixte de wsh et wmi, faire du genre (à améliorer avec un if pour le driver),

'*********************** Mappage du server OXALYS ************
Dim WshNetwork 
Set WshNetwork = WScript.CreateObject("WScript.Network")
'WshNetwork.RemoveNetworkDrive "U:"
'WshNetwork.MapNetworkDrive "U:", "[file://\\Oxalys\OXALYS\OXADATA\JOR \\Oxalys\OXALYS\OXADATA\JOR]"

jean-marc
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
3 juil. 2006 à 22:43
Merci JMO mais pour le mappage/démappage c'est tout bon, ça fonctionne à merveille (je pourrais fournir le code demain...).
Mon soucis c'est juste d'obliger le 2ème script à finir de s'exécuter avant de continuer le premier, ou de mettre le premier en attente pour que le deuxième puisse s'exécuter complètement.
Voilà quoi..., ça ne doit pas être trop difficile mais je ne trouve pas de solution.
HELP!!!!!
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
3 juil. 2006 à 22:52
 Re-bonsoir,

un peu fatigué, donc une réponse hasardeuse, faire une boucle sur un Drag/Drop:

Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
   j = objArgs(I) & vbCrLf& j
Next
MsgBox j

jean-marc
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
3 juil. 2006 à 23:01
 Re,
désolé mais je ne vois pas où tu veux en venir là... (suis pas encore pro en VBS ).
Je ne comprends pas l'intérêt de la boite de dialogue, je préfèrerais du transparent....
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
3 juil. 2006 à 23:02
 Re,

Toujours fatigué,

Ne pas omettre l'autre solution de nhervagault , un .bat
Celà s'appelle de l'oppenturnisme.

jean-marc
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
3 juil. 2006 à 23:11
 Re,
aucun problème pour la fatigue...
le .bat est une bonne idée sauf que je dois "transcrire" et réorganiser les batch actuels en VBS... j'aurais donc préféré une solution entièrement VB. Mais c'est vrai que certaines fonctions spécifiques aux .bat sont difficilement traduisibles alors que le VBScript est bien plus puissant. Cela dit, le problème reste quasi entier...
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
4 juil. 2006 à 09:45
Bonjour, comme promis hier, voici le démappage des lecteurs réseau.

La source vient de ce site, si je me souviens bien, ça fonctionne à merveille.


' Démontage des partitions communes

On Error Resume Next

Start="F:" 'inclu

Set objNetwork = CreateObject("Wscript.Network" )

Set colDrives = objNetwork.EnumNetworkDrives

 For i = 0 to colDrives.Count-1 Step 2

    If Asc(coldrives.item(i)) >= Asc(Ucase(Start)) then

        objNetwork.RemoveNetworkDrive colDrives.Item(i)

    end if

Next
0
Hitch16 Messages postés 78 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 6 octobre 2008
4 juil. 2006 à 10:46
Re-bonjour,


En fait j'ai trouvé la solution tout "seul" avec google


WScript.Sleep 1000  'ici l'attente est de 1s


et tout passe nickel...

Merci pour votre aide

@++
0
Rejoignez-nous