Appel d'une procédure avec argument d'un autre script
Bonjour,
J'ai 2 scripts: l'un considéré comme librairie (common.vbs) et l'autre comme script principal.
Dans le script principal j'utilise une variable d'environnement que j'ai définis dans SYSTEM:GL_Software_Src.
Dans le script principal, j'ai ce fragment de script qui installe Ms Office 2007 en silence:
Code:
1 2 3 4
| Sub Install_MsOffice2007
Office2007Path=GetVarEnvValue("GL_Software_Src" , "SYSTEM") & "\Office 2007"
ExecuteMsDosCmd(Office2007Path & "\Setup.exe /config " & Office2007Path & "\PROPLUS.WW\config.xml")
End Sub |
Dans common.vbs, la procédure ExecuteMsDosCmd qui permet d'exécuter une commande Ms Dos est définie de la sorte:
Code:
1 2 3 4 5
| public Sub ExecuteMsDosCmd(Cde) ' As String)
Dim objShell,objScriptExec
Set objShell = CreateObject("WScript.Shell" )
Set objScriptExec = objShell.Exec("cmd /C " & Cde)'& cde,0,true)
End Sub |
Dans le script principal, j'utilise la procédure ExecuteFileContents pour inclure common.vbs
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sub ExecuteFileContents(strFile)
ForReading=1
Set WshShell = CreateObject("WScript.Shell" )
strFile = WshShell.ExpandEnvironmentStrings(strFile)
Set objFs = CreateObject("Scripting.FileSystemObject")
strFile = objFs.GetAbsolutePathName(strFile)
'Wscript.Echo StrFile
StrFile="z:\Misc\Common.vbs"
Set objFile = objFs.OpenTextFile(strFile, ForReading)
strCode = objFile.ReadAll
objFile.Close
ExecuteGlobal strCode
End Sub |
Le problème:
Quand j'exécute Sub Install_MsOffice2007, il me génère une erreur: "Type incompatible", mais quand je copie le code de la procédure ExecuteMsDosCmd dans le script principal (déclaration) et que j'exécute Sub Install_MsOffice2007, il n'y a aucune erreur signalée.
A votre avis cette erreur est due à quoi?
Merci pour votre aide.