|
Voici un script qui permet d'installer 7zip 4.65
32 ou 64 bits sans assistance en Kixtart.
Si la version de 7zip 4.57 est détecté, le script la desinstalle à
condition d'avoir accés au fichier msi de la version 4.57.
Ligne de commande : "msiexec /i 7z465.msi /qn
ALLUSERS="1""
Principe
Mettre les 4 fichiers suivants dans le même
dossier :
7z465.msi et
7z465-x64.msi qui peuvent être télécharger
sur ce site : http://www.7-zip.org/
install.bat : décrit ci-dessous
7z465.kix : décrit ci-dessous
Pour installer 7zip 4.65 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 OFF
@echo ......................... @echo INSTALLATION DE 7zip 4.65 @echo JEAN-RENE DANIS 05/02/09 @echo .........................
IF NOT EXIST %WINDIR%\system32\kix32.exe ( @echo ...................................................................... @echo CE SCRIPT NECESSITE LA PRESENCE DU FICHIER %WINDIR%\system32\kix32.exe @echo VOUS POUVEZ LE TELECHARGER ET LE COPIER A PARTIR DU SITE WEB : @echo www.kixtart.org @echo ...................................................................... pause ) ELSE ( @echo ON kix32 7z465.kix ) Prompt
|
Contenu du fichier 7z465.kix (télécharger ce
script en pdf couleur ici)
;installation de 7-zip 4.65 à partir du fichier 7z465.msi ou 7z465-x64.msi ;Si la version 4.57 existe : le script la désinstalle. ;JEAN-RENE DANIS 05/02/09
;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
;determine le chemin du menu démarrer\programmes de tous les utilisateurs $ALLUSERPRG=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Programs") ? "Chemin du menu démarrer\programmes : " + $ALLUSERPRG
;Verifie si le programme est déjà installé $Dossier7ZIP="%systemdrive%\Program files\7-zip" If EXIST ($Dossier7ZIP)
? "Le logiciel a été trouvé dans le dossier : $Dossier7ZIP" ? "Une version est déjà installée sur votre ordinateur." ;Ouvre le fichier readme de 7zip en lecture seul IF Open(1, "$Dossier7ZIP\readme.txt", 2)=0 ;lecture de la ligne courante $Version7zip = ReadLine(1) Close (1) ? "La version déjà installé est : $Version7zip" ELSE ? "Impossible d'ouvrir le fichier Dossier7ZIP\readme.txt" GOTO "finerreur" ENDIF ;Desinstallation en fonction de la version trouvée Select Case $Version7zip = "7-Zip 4.65" ? "Pas besoin d'installation" GOTO "finerreur" Case $Version7zip = "7-Zip 4.57" ? "Désinstallation de la version 7-Zip 4.57" cd "@SCRIPTDIR\..\7-zip457" ;desinstallation du programme 32 ou 64 bits IF @ONWOW64 = 1 ? "Desinstallation pour un CPU 64bits"
$commande = 'msiexec /uninstall 7z457-x64.msi /passive' ? $commande shell '%COMSPEC% /c ' + $commande IF @ERROR <> 0 ? "Erreur n° " + @ERROR GOTO "finerreur" ENDIF ELSE ? "Desinstallation pour un CPU 32bits" $commande = 'msiexec /uninstall 7z457.msi /passive' ? $commande shell '%COMSPEC% /c ' + $commande IF @ERROR <> 0 ? "Erreur n° " + @ERROR GOTO "finerreur" ENDIF ENDIF EndSelect
;suppression des raccourcis des anciennes version IF EXIST ("$ALLUSERPRG\7-zip") $dossierasupprimer = "$ALLUSERPRG\7-zip" 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 ENDIF
IF EXIST ("$ALLUSERPRG\Utilitaires\7-zip") $dossierasupprimer = "$ALLUSERPRG\Utilitaires\7-zip" 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 ENDIF Endif
cd @SCRIPTDIR
;installation du programme 32 ou 64 bits IF @ONWOW64 = 1 ? "Installation pour un CPU 64bits" $commande = 'msiexec /i @SCRIPTDIR\7z465-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\7z465.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 a été créé ou existait déjà" ELSE ? "Erreur à la création du 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
|