Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Product View Express M030

 

Voici un script qui permet d'installer Product View Express M030 sans assistance en Kixtart.

Ligne de commande : "msiexec /i pvx_install\pvx.msi /qn ALLUSERS="1""

Principe

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

pvx_install.exe : fichier d'installation disponible gratuitement sur le site de PTC : http://www.ptc.com
install.bat : décrit ci-dessous
pvxM030.kix : décrit ci-dessous

Pour installer Product View Express M030 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 Product View Express M030
@echo JEAN-RENE DANIS 09/10/08
@echo .........................................

kix32 pvxM030.kix




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

;installation de Product View Express M030 à partir du fichier pvx_install.exe
;JEAN-RENE DANIS 09-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\pvx_install'
;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é et affiche sa version
$prgatester = $progx86 + "\ProductViewExpress\ptcpvx.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

;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

;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 = 'pvx_install.exe'
$destinationdeladecomp = $dossierprov + '\pvx_install'
$commande='"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

;installation du programme
$commande='msiexec /i ' + $dossierprov + '\pvx_install\pvx.msi /qn ALLUSERS="1"'
? $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")
? "création du dossier " + $ALLUSERPRG + "\Viewers"
MD $ALLUSERPRG + "\Viewers"
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
? "Le dossier " + $ALLUSERPRG + "\Viewers existe déjà"
ENDIF

;Création du raccourci dans dossier "menu démarrer\viewers"
IF ADDPROGRAMITEM ('"' + $progx86 + '\ProductViewExpress\ptcpvx.exe"','Product View',"",0,'"' + $progx86 + '\ProductViewExpress"',0,0) = 0
? "Le raccourci a été créé"
ELSE
? "Erreur à la création du raccourci"
GOTO "finerreur"
ENDIF
MOVE $ALLUSERPRG + '\Product View.lnk' $ALLUSERPRG + "\Viewers\Product View.lnk"

;effacement d'un dossier
$dossierasupprimer = $dossierprov + '\pvx_install'
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("")


 

 

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