Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Emile Maurin 4.1 (Bibliothèque de composant CAO)

 

Voici un script qui permet d'installer Emile Maurin 4.1 sans assistance en Kixtart.

Ligne de commande : "Aucune à ma connaissance"

Le CD d'Emile Maurin peut être commandé gratuitement sur ce site : www.maurin.fr

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 $H
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"



 

 

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