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:
Dans common.vbs, la procédure ExecuteMsDosCmd qui permet d'exécuter une commande Ms Dos est définie de la sorte:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 le script principal, j'utilise la procédure ExecuteFileContents pour inclure common.vbs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Le problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager