Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
7zip 4.57 32 ou 64 bits

 

Voici un script qui permet d'installer 7zip 4.57 32 ou 64 bits sans assistance en Kixtart.

Ligne de commande : "msiexec /i 7z457.msi /qn ALLUSERS="1""

Principe

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

7z457.msi et 7z457-x64.msi qui peuvent être télécharger sur ce site : http://www.7-zip.org/
install.bat : décrit ci-dessous
7z457.kix : décrit ci-dessous
GetExtFileProperties.udf : fonction Kixtart pour récuperer les attributs des fichiers

Pour installer 7zip 4.5.7 32 ou 64 bits 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 7-zip 4.57 (32 ou 64 bits)
@echo JEAN-RENE DANIS 26/09/08
@echo ..........................................

kix32 7z457.kix

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

;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("")


 

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