|
;installation de Solidworks Edrawings 2009
SP0.0 à partir du fichier eDrawingsFullAll.exe
;JEAN-RENE DANIS 13-10-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\edrawing2009sp00\'
;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
cd @SCRIPTDIR\
;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
;Verifie si le programme est déjà installé
$prgatester = $progx86 + "\Fichiers
communs\eDrawings2009\EModelViewer.exe"
IF EXIST ($prgatester)
? "Le programme est déjà installé"
GOTO "finerreur"
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF
;determine le chemin du menu démarrer, tous
les programmes en fonction de la langue et du systeme d'exploitation
$ALLUSERPRG=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders","Common Programs")
? "Chemin du menu démarrer\tous les programmes : " + $ALLUSERPRG
;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 d'un fichier
$fichieradecomp = 'eDrawingsFullAll.exe'
$destinationdeladecomp = $dossierprov
$commande='"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' +
$fichieradecomp
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Verifi si un dossier existe
IF NOT EXIST ($ALLUSERPRG + "\Solidworks 2009\")
? "Le dossier " + $ALLUSERPRG + "\Solidworks 2009\ existe déjà"
$drapeausw2009 = 1
ENDIF
;installation du programme
$commande='msiexec /i ' + $dossierprov + 'eDrawings.msi /passive
/norestart'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Si le dossier "menu démarrer\viewers"
n'existe : le créer
IF NOT EXIST ($ALLUSERPRG + "\Viewers\Solidworks")
? "création du dossier " + $ALLUSERPRG + "\Viewers\Solidworks"
MD $ALLUSERPRG + "\Viewers\Solidworks"
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
? "Le dossier " + $ALLUSERPRG + "\Viewers\Solidworks 2009 existe déjà"
ENDIF
;Déplacement du raccourci dans dossier "menu
démarrer\viewers"
MOVE $ALLUSERPRG + '\Solidworks 2009\SolidWorks eDrawings 2009.lnk'
$ALLUSERPRG + "\Viewers\Solidworks\SolidWorks eDrawings 2009.lnk"
IF $drapeausw2009
DELPROGRAMGROUP ("Solidworks 2009", 1)
ENDIF
;Creation d'un clé registre
$ReturnCode = AddKey("HKCU\SOFTWARE\eDrawings\e2009\General")
If $ReturnCode = 0
? "Key added...."
WriteValue("HKCU\SOFTWARE\eDrawings\e2009\General", "Activated", "1",
"REG_DWORD")
Endif
;Ouverture de la ruche de default user
$commande='reg.exe load HKEY_USERS\Usertmp "%systemdrive%\Documents and
Settings\Default User\ntuser.dat"'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n°@ERROR impossible de charger la ruche demandé"
GOTO "finreg"
ENDIF
;Modification de la ruche default user
;$ReturnCode = AddKey("HKU\SOFTWARE\eDrawings\e2009\General")
If $ReturnCode = 0
? "Key added...."
WriteValue("HKU\Usertmp\SOFTWARE\eDrawings\e2009\General", "Activated",
"1", "REG_DWORD")
Endif
;fermeture de la ruche default user
$commande='reg.exe unLoad HKEY_USERS\Usertmp'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n°@ERROR impossible décharger la ruche demandé"
GOTO "finreg"
ENDIF
;label de fin modification registre
:finreg
;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"
;annule la redirection vers un fichier
RedirectOutput("")
|