Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Advance Structure 3.1 et du patch SP2

 

Voici un script qui permet d'installer Advance Structure 3.1 SP2 sans assistance en Kixtart.

Advance Structure est un logiciel de calcul édité par la société GRAITEC : www.graitec.com

Principe

Mettre les 7 fichiers suivants dans le même dossier :

Advance_ST_3.1_patch2.7z contient les fichiers d'installation téléchargé sur le site de Graitec et recompressé
NETHASP.INI : (facultatif) fichier contenant l'adresse du serveur de licence
install.bat : décrit ci-dessous
AdvanceStructure31SP2.kix : décrit ci-dessous
setup.iss : paramètre d'installation de ADDBDeploy décrit ci-dessous
ShellCmd.udf : fonction Kixtart pour lancer des lignes de commande

Pour installer Advance Structure 3.1 SP2 de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

Contenu du fichier install.bat

Prompt $H
cls

@echo .......................................
@echo INSTALLATION DE Advance Structure 31SP2
@echo JEAN-RENE DANIS 02/10/08
@echo .......................................

kix32 AdvanceStructure31SP2.kix

Contenu du AdvanceStructure31SP2.kix (télécharger ce script en pdf couleur ici)

;installation de Advance Structure 3.1SP2 à partir du fichier AdvanceStructure31SP2.7z
;JEAN-RENE DANIS 02/10/08

;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit des fichiers d'installation (copie du CD) :
$dossierinstall = '%systemdrive%\install'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;variables qui définisse le fichier MSI de la version 3.1SP1 de AdvanceStructure :
$msiversion31 = 'OLDMSI\AdvanceDesign.msi'

;Création du dossier pour mettre le fichier log si ce dossier n'existe pas
IF NOT EXIST ($DossierDeLog)
MD $DossierDeLog
ENDIF

;Ouverture du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
?? "Ouverture de " + @SCRIPTNAME + " à " + @TIME
ELSE
? "Impossible de créer le fichier log"
GOTO "finerreur"
ENDIF

;Chargement d'une fonction : ShellCMD
;Ce script charge une fonction sauf si elle a déjà été chargée.
;Verifier que le nom de la fonction à chargée est bien présent dans
;le nom de la variable $exist...des 2ieme et 7ieme lignes ci-dessou
$emplacementfonction = "ShellCmd.udf"
IF $existShellCMD = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existShellCMD = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF

;determine le dossier "program files 32 bits" en fonction de l'architecture du systeme d'exploitation
IF @ONWOW64 = 1
$progx86 = "%SYSTEMDrive%\Program Files (x86)"
ELSE
$progx86 = "%SYSTEMDrive%\Program Files"
ENDIF
? "Dossier d'installation des programme 32bits :" + $progx86

;verifie si le systeme d'exploitation est en anglais ou en francais
IF EXIST ("%SYSTEMDrive%\Documents and Settings\Administrator")
$LNGSEI="GB"
ELSE
$LNGSEI="FR"
ENDIF
? "Langue : " + $LNGSEI

;determine le chemin du dossier du bureau en fonction de la langue et du system d'exploitation
Select
Case @PRODUCTTYPE = "Windows 2000 Professional"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\bureau"
Case @PRODUCTTYPE = "Windows XP Professional"
IF $LNGSEI="FR"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\bureau"
ELSE
IF $LNGSEI="GB"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\Desktop"
ENDIF
ENDIF
Case @PRODUCTTYPE = "Windows Vista Business Edition"
$ALLUSERBUREAU = "%public%\desktop"
EndSelect
? "Chemin du bureau : " + $ALLUSERBUREAU

;creation du dossier de destination des fichiers d'install
IF NOT EXIST ($dossierinstall)
MD $dossierprov
? "Le dossier : " + $dossierinstall + " a été créé."
ELSE
? "Le dossier : " + $dossierinstall + " existe déjà."
ENDIF

;Verifie si le programme est déjà installé et le desinstallé
$prgatester = $progx86 + "\Graitec\Advance Structure 3.1\bin"
IF EXIST ($prgatester)
$cmd_sei = 'msiexec /x ' + $msiversion31 + ' /qb-!'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF

;Efface le dossier d'install de l'ancienne version (3.1+SP1)
;effacement d'un dossier
$dossierasupprimer = $dossierinstall + '\AdvanceStructure31'
del $dossierasupprimer + "\*.*" /c /f /s
rd $dossierasupprimer /s
IF NOT EXIST ($dossierasupprimer)
? "Le dossier : " + $dossierasupprimer + " a été supprimé"
ELSE
? "Le dossier : " + $dossierasupprimer + " n'a pas été supprimé complétement"
ENDIF

;efface l'ancien fichier ini
del $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI" /c /f /s

;décompression d'un fichier
$fichieradecomp = "Advance_ST_3.1_patch2.7z"
$destinationdeladecomp = $dossierinstall
IF EXIST ($fichieradecomp)
$cmd_sei = '"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Décompression impossible"
GOTO "finerreur"
ENDIF

;décompression d'un fichier
$fichieradecomp = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy.exe'
$destinationdeladecomp = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy'
IF EXIST ($fichieradecomp)
$cmd_sei = '"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Décompression impossible"
GOTO "finerreur"
ENDIF

;installation de ADDBDeploy.exe
? "COPY setup.iss " + $dossierinstall + "\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.iss"
COPY 'setup.iss' $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.iss'
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
$cmd_sei = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.exe -s'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF

;installation de advance structure 3.1SP2
$cmd_sei = 'msiexec /i ' + $dossierinstall + '\Advance_ST_3.1_patch2\MSI\AdvanceDesign.msi /passive /norestart'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF

;copie du fichier ini contenant l'adresse du serveur de licence
?"COPY NETHASP.INI " + $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI"
COPY "NETHASP.INI" $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI"
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

GOTO "fin"

;label de fin avec erreurs
:finerreur
? "fin du script d'installation : erreur"
;Ouverture du fichier log pour signaler la présence d'erreurs
IF RedirectOutput($DossierDeLog + "ERREUR_" + @SCRIPTNAME +".txt") = 0
?? "Ouverture de erreur_" + @SCRIPTNAME + " à " + @TIME
? "le script d'installation à rencontrer des erreurs : consulter le fichier log :"
? $DossierDeLog + @SCRIPTNAME +".txt"
ENDIF
sleep 5

;label de fin sans erreurs
:fin
? "fin du script d'installation"


 

Contenu du fichier setup.iss pour l'installation de ADDBDeploy (une dépendance de Advance Structure 3.1)

[InstallShield Silent]
Version=v6.00.000
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[Application]
Name=Advance Design Database Deploy
Version=1.00
Company=Graitec
Lang=0009
[{058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-DlgOrder]
Dlg0={058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-SdFinish-0
Count=1
[{058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[{2D873FF2-B096-4CDF-8173-7B512EA0B945}-DlgOrder]
Count=0
[{3404667C-31F3-4AEE-91E3-BFF05EF1C3DD}-DlgOrder]
Count=0
[{11BF43E3-4B13-44AA-B081-3FCBA0AFC47E}-DlgOrder]
Count=0
[{4BA8B794-EB05-4F22-9B20-C244DB8C2DFF}-DlgOrder]
Count=0
[{D6D0D1CF-E7EB-4EC9-936C-FD5401269401}-DlgOrder]
Count=0
[{031D25FF-F978-4A74-926A-6734490B6FAD}-DlgOrder]
Count=0
[{B5915F97-6D10-4869-943E-A15D4DA39E95}-DlgOrder]
Count=0
[{28E5DE03-2ED0-44E5-A411-04BD5856D497}-DlgOrder]
Count=0
[{FA8CEE01-8C1B-4813-AB0B-CDA15E76216C}-DlgOrder]
Count=0
[{812135D5-44EE-4FBB-A7AD-231D15946C91}-DlgOrder]
Count=0
[{F80E02D1-6A78-4980-9925-13E2385CE8C6}-DlgOrder]
Count=0

 

Vous pouvez poster vos commentaires sur mon blog : http://installation-silencieuse.blogspot.com