VBS: Lancer un script depuis un script et recuperer le resultat
Fonctionnement:
Script 1 (cmd.vbs) execute une commande ou une fonction ou whatever
Scritp A (execcmd.vbs) lance script 1 dans une variable et “joue” avec la variable.
Très utile si on a un script A chapeau et X scripts autour avec chacun une fonction propre.
script A:
' Execute script in argument "/Cmd:" and analyse stdout
Set oShell = CreateObject("Wscript.Shell") Cmd = colNamedArguments.Item("Cmd")
Do Until objStdOut.AtEndOfStream wscript.quit
|
Script 1:
' Execute command strCommand and stdout in strLine
Set oShell = CreateObject("Wscript.Shell") |
ici la command est un dir ou un qwinsta, mais cela peut très bien être une commande powershell ou une requete sql… etc
on peut très bien mettre cela dans un script unique, mais lorsqu’on commence à avoir plus de 200 lignes à un script, il est plus simple, à mon avis, d’utiliser cette méthode, plutôt que d’écrire des usines à gaz.
---------------------------------------------
ensuite on peut aussi, appeler un autre script depuis un script, en utilisant les variables résultantes des actions précédentes.
wshshell.run "cscript vbscript.vbs /arg:" & strLine ,0,true
or
wshshell.run "batch/arg:" & strLine ,0,true
or
wshshell.run "command/arg:" & strLine ,0,true
si vous ne lancez pas tout depuis le même répertoire, n'oubliez pas de fournir le chemin de chaque objet appelé.
si vous lancez une commande MSDOS comme "dir" n'oubliez pas d'ajouter %comspec% /c comme ça:
wshshell.run "%comspec% /c command",0,true
that's all
Commenter cet article