;installation de 7-zip 4.57 à partir du fichier 7z457.msi ou 7z457-x64.msi
;JEAN-RENE DANIS 26-09-08
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;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 : GetExtFileProperties
;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 = "@SCRIPTDIR\GetExtFileProperties.udf"
IF $existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF
;Verifie si le programme est déjà installé et affiche sa version
$prgatester = "%SYSTEMDrive%\Program Files\7-Zip\7zfm.exe"
IF EXIST ($prgatester)
IF @PRODUCTTYPE = "Windows Vista Business Edition"
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,145)
ELSE
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,37)
ENDIF
GOTO "finerreur"
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF
;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 menu démarrer, tous les programmes en fonction de la langue et du systeme d'exploitation
SELECT
CASE @PRODUCTTYPE = "Windows 2000 Professional"
$ALLUSERPRG="%ALLUSERSPROFILE%\Menu Démarrer\Programmes"
CASE @PRODUCTTYPE = "Windows XP Professional"
IF $LNGSEI="FR"
$ALLUSERPRG="%ALLUSERSPROFILE%\Menu Démarrer\Programmes"
ELSE
IF $LNGSEI="GB"
$ALLUSERPRG ="%ALLUSERSPROFILE%\Start Menu\Programs"
ENDIF
ENDIF
CASE @PRODUCTTYPE = "Windows Vista Business Edition"
$ALLUSERPRG = "%ProgramData%\Microsoft\Windows\Start Menu\Programs"
ENDSELECT
? "Chemin du menu démarrer\tous les programmes : " + $ALLUSERPRG
;installation du programme 32 ou 64 bits
IF @ONWOW64 = 1
? "Installation pour un CPU 64bits"
$commande = 'msiexec /i @SCRIPTDIR\7z457-x64.msi /qn ALLUSERS="1"'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
? "Installation pour un CPU 32bits"
$commande = 'msiexec /i @SCRIPTDIR\7z457.msi /qn ALLUSERS="1"'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ENDIF
;Si le dossier "menu démarrer\utilitaires" n'existe : le créer
IF ADDPROGRAMGROUP ("Utilitaires",1) = 0
? "Dossier Utilitaires créé ou exist déjà"
ELSE
? "Erreur création dossier Utilitaires"
GOTO "Finerreur"
ENDIF
;Déplacement du raccourci de menu démarrer vers le dossier "menu démarrer\utilitaires"
? "Deplace "+ $ALLUSERPRG + "\7-Zip\ " $ALLUSERPRG + "\Utilitaires\7-Zip\"
MOVE $ALLUSERPRG + "\7-Zip\" $ALLUSERPRG + "\Utilitaires\7-Zip\" /c /r
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"
;annule la redirection vers un fichier
RedirectOutput("")
|