Scripts d'installation silencieuseEmile Maurin 4.1 (Bibliothèque de composant CAO)
D'après le support téléphonique du CD d'installation de Emile Maurin 4.1 : il n'existe pas de witch pour une installation silencieuse de leur CD. J'ai cependant trouvé une solution en KIXtart.
Voici un script qui permet d'installer Emile Maurin 4.1 sans assistance en Kixtart.
Principe
Mettre les 4 fichiers suivants dans le même dossier :
emaurin41.7z contient les fichiers du CD d'installation compressés
install.bat : décrit ci-dessous
emaurin41.kix : décrit ci-dessous
ShellCmd.udf : fonction Kixtart pour lancer des lignes de commande
Pour installer Emile Maurin 4.1 de manière silencieuse : double cliquer sur install.bat
Détail des scripts nécessaires
Contenu du fichier install.bat
Prompt
cls
@echo ........................
@echo INSTALLATION DE Emile
@echo JEAN-RENE DANIS 01/10/08
@echo ........................
kix32 emaurin41.kix
Contenu du emaurin41.kix (télécharger ce script en pdf couleur ici)
;installation de Emile Maurin 4.1 à partir du fichier emaurin41.7z
;JEAN-RENE DANIS 26-09-08
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit la destination temporaire :
$dossierprov = '%systemdrive%\install\emaurin41'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;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
;creation du dossier de destination
IF NOT EXIST ($dossierprov)
MD $dossierprov
? "Le dossier : " + $dossierprov + " a été créé."
ELSE
? "Le dossier : " + $dossierprov + " existe déjà."
ENDIF
?"Décompression du fichier *.7z"?
$cmd_sei = '"'+$SEI_7Z+'\7z.exe" x -o' + $dossierprov + ' emaurin41.7z'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
?"Lancement de la commande d'installation sans switch puisqu'il n'en n'existe pas."?
cd $dossierprov + "\emaurin41\"
$cmd_sei = 'start "emaurin" /D ' + $dossierprov + '\emaurin41\ psol_workstation.exe'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
? 'Prend la main sur la fenêtre "Setup CADENAS PARTsolutions - V 8.1.07a"' ?
$whilestf = 1
$lock = 1
WHILE $whilestf <> 0
? "essai n°" + $lock
sleep 5
$lock = $lock + 1
$whilestf = setfocus ("Setup CADENAS PARTsolutions - V 8.1.07a")
LOOP
sleep 5
SendKeys ("s")
sleep 5
SendKeys ("{ENTER}")
sleep 5
SendKeys ("s")
sleep 10
SendKeys ("s")
? "Recherche du fichier : " + $progx86 +"\cadenas\partsolutions\data\23d-libs\pre_groupe_maurin\installhistory.cfg"
? "C'est le dernier fichier installé."?
$whilestf = 1
$lock = 1
WHILE $whilestf <> 0
? "Patienter quelques minutes (essai n°" + $lock +")"
sleep 10
$lock = $lock + 1
if exist ($progx86 + "\cadenas\partsolutions\data\23d-libs\pre_groupe_maurin\installhistory.cfg")
$whilestf = 0
endif
LOOP
? "le fichier a été trouvé, patienter 15 secondes..."
sleep 15
setfocus ("Setup CADENAS PARTsolutions - V 8.1.07a")
;ferme la fenêtre en appuyant sur "Entrer" tant que la fenêtre est ouverte...
WHILE $whilestf = 0
? "num :" + $lock
? "whilestf :" + $whilestf
sleep 5
$lock = $lock + 1
SendKeys ("{ENTER}")
$whilestf = setfocus ("Setup CADENAS PARTsolutions - V 8.1.07a")
LOOP
? "whilestf de sortie loop:" + $whilestf
;effacement d'un dossier
$dossierasupprimer = $dossierprov
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
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"
lundi 22 septembre 2008
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire