J'essaye d'automatiser l'application de bureau d'Outlook. J'ai sous différentes procédures écrites dans un fichier de script vb (fichier.vbs) qui effectue différents types d'opérations sur Outlook. Je veux appeler l'une des sous-procédures à partir de la ligne de commande. Comment je fais ça?Comment appeler une fonction/sous-procédure de VBS à partir de la ligne de commande?
-3
A
Répondre
-1
Cet exemple appelle fonction ou sub et trouve le bon appel dynamiquement. Sur la ligne de commande, vous indiquez 'functionToExecute' comme le nom de la fonction que vous voulez appeler ou 'subToExecute' comme le sous-programme que vous voulez appeler. Deux exemples pour appeler le VBS à partir de la ligne de commande pour un sous et une fonction respectivement:
cscript.exe demo.vbs subToExecute
cscript.exe demo.vbs functionToExecute
Dans le script VBS obtenir le nom de la routine de l'argument de ligne de commande et décider d'appeler un sous-programme ou appelez un fonction:
On Error Resume Next
mySubOrFuncName = WScript.Arguments.Item(0) 'name of the subroutine or function
subCall = "call " & mySubOrFuncName & "()"
Execute subCall
If Err.Number <> 0 Then 'if sub could not be called, take the function call
eval(mySubOrFuncName)
Err.Clear
End If
WScript.Quit
'this is a subroutine you already have
Sub subToExecute
MsgBox "inside a sub"
'do stuff
End Sub
'this is a function you already have
Function functionToExecute
MsgBox "inside a function"
'do stuff
End Function
exemple pratique pour la manipulation de ligne de commande VBS: https://ss64.com/vb/syntax-args.html
Cela m'a aidé. Mais comme vous l'avez mentionné, eval() n'a pas fonctionné pour moi. – user8533698
@ user8533698 'Eval()' évalue une condition à laquelle il ne peut pas exécuter des instructions complètes, vous devez utiliser 'Execute()'/'ExecuteGlobal()' à la place. En outre, l'exemple ci-dessus provoque une erreur de syntaxe en raison de la chaîne incorrecte affectée à 'a'. Ne pas accepter les réponses incomplètes/fausses, cela n'aide personne. – Lankymart
juste corrigé l'erreur de syntaxe dans l'affectation à 'a' –