|
Voici un script qui permet d'installer PDFSam
1.1.2 sans assistance en Kixtart.
Point supplémentaires :
-Le script désinstall les anciennes version
de PDFSam
-Le script personnalise les options : changement du language et des
paramètres de mise à jour.
Principe
Mettre les 3 fichiers suivants dans le même
dossier :
pdfsam-1.1.2-out.zip (ce
fichier peut être télechargé sur le site de www.pdfsam.org : http://www.pdfsam.org/
)
install.bat : décrit ci-dessous pdfsam-1.1.2-out.kix : décrit ci-dessous
Pour installer et parametrer PDFSam
1.1.2 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 PDFSam 1.1.2 @echo JEAN-RENE DANIS 03/04/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 pdfsam-1.1.2-out.kix ) Prompt
|
Contenu du fichier pdfsam-1.1.2-out.kix
(télécharger ce script en pdf couleur ici)
;installation de PDFsam 1.1.2 à partir du fichier pdfsam-1.1.2-out.zip ; désinstallation de la version 1.0.3 ;presonalisation des options : language FR et désactivation des mises à jour ;JEAN-RENE DANIS 03/04/09
;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\PDFSam103' ;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 chemin du dossiers "program files" pour les applications 32 bits ;Dans le cas d'un système d'exploitation 64 bits : les applications 32 bits sont dans le dossiers ProgramFilesDir (x86). $PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir (x86)") IF $PRGDIR =""
;Si ProgramFilesDir (x86) n'exite pas : c'est que le sysème
d'exploitation est 32bits, dans ce cas les applications 32bits sont
dans le dossier ProgramFilesDir. $PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir") ENDIF ? 'Chemin du dossiers "program files" pour les applications 32bits : $PRGDIR'
;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"
;Si le programme existe ;désinstallation manuelle $DossierPDFSAM="$PRGDIR\pdfsam103" If EXIST ($DossierPDFSAM)
? "Le logiciel a été trouvé dans le dossier : $DossierPDFSAM" ? "Une version est déjà installée sur votre ordinateur." ? "Le programme va supprimer l'installation existante et les raccourcis" ; suppression du dossier PDFSam Split & Merge présent dans %programesfiles% IF EXIST ($DossierPDFSAM) $dossierasupprimer = $DossierPDFSAM 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" GOTO "finerreur" ENDIF ENDIF ;suppression des raccourcis des anciennes version IF EXIST ("$ALLUSERPRG\PDFSam Split & Merge.lnk") del "$ALLUSERPRG\PDFSam Split & Merge.lnk" /c /f /s IF NOT EXIST ("$ALLUSERPRG\PDFSam Split & Merge.lnk") ? "Le fichier : $ALLUSERPRG\PDFSam Split & Merge.lnk a été supprimé" ELSE
? "Le fichier : $ALLUSERPRG\PDFSam
Split & Merge.lnk n'a pas été supprimé" ENDIF ENDIF IF EXIST ("$ALLUSERPRG\Utilitaires\PDFSam Split & Merge.lnk") del "$ALLUSERPRG\PDFSam Split & Merge.lnk" /c /f /s IF NOT EXIST ("$ALLUSERPRG\Utilitaires\PDFSam Split & Merge.lnk")
? "Le fichier :
$ALLUSERPRG\Utilitaires\PDFSam Split & Merge.lnk a été supprimé" ELSE
? "Le fichier :
$ALLUSERPRG\Utilitaires\PDFSam Split & Merge.lnk n'a pas été
supprimé" ENDIF ENDIF Endif
;verifie la présence de 7zip IF EXIST ($SEI_7Z) ? "$SEI_7Z existe." ELSE ? "L'installation necessite un logiciel de décompression." ? "$SEI_7Z n'esiste pas, installez le puis recommencer." GOTO "finerreur" ENDIF
;décompression d'un fichier $fichieradecomp = 'pdfsam-1.1.2-out.zip' $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
;Copie d'un dossier COPY $dossierprov "$PRGDIR\PDFSam112\" /s
;Si le dossier "menu démarrer\Utilitaires" n'existe : le créer If AddProgramGroup("Utilitaires", 1) = 0 ? "Dossier Menu démarrer\Utilitaires créé...." Endif
;création du raccourci IF ADDPROGRAMITEM ('"$PRGDIR\PDFSam112\pdfsam-starter.exe"', "PDFSam Split & Merge", "", 0, "",0,0) = 0 ? "Raccourci PDFSam créé...." Endif
;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
;personnalisasion du logiciel ; language : Français ; Mise à jour : désactivé
;copie de sauvegarde COPY "$PRGDIR\PDFSam112\config.xml" "$PRGDIR\PDFSam112\config.original"
$FichierXML = "$PRGDIR\PDFSam112\config.xml" $FichierXMLPersonnalise = "$PRGDIR\PDFSam112\config1.xml" $LigneAChrercher = " <i18n>en_GB</i18n>" $LigneARemplacer = " <i18n>fr</i18n>"
;Ouvre le fichier original et créé le fichier copie vide IF Open(1, "$FichierXML", 2)=0 AND Open(2, "$FichierXMLPersonnalise", 5)=0 ;lecture de la ligne courante $LigneFichierXML = ReadLine(1) WHILE @ERROR = 0 ;Inscription de la ligne dans un tableau pour effectuer une recherche $TableauChaines = "$LigneFichierXML", "£££" $ResultRechercheChaine = ASCAN($TableauChaines, $LigneAChrercher, , , 1) IF $ResultRechercheChaine = 0 ; remplacement de la ligne si la recherche est positive $LigneFichierXML = $LigneARemplacer ELSE ; ne change rien à la ligne ENDIF ;Recopie la ligne dans fichier personnalisé WriteLine( 2 , $LigneFichierXML + @CRLF) ;lit la ligne courante $LigneFichierXML = ReadLine(1) LOOP ;fermeture des fichiers Close (1) Close (2) ? "Le fichier $FichierXMLPersonnalise à été créé" ELSE BEEP ? "Ouverture des fichiers impossibles" ENDIF
$FichierXML = "$PRGDIR\PDFSam112\config1.xml" $FichierXMLPersonnalise = "$PRGDIR\PDFSam112\config2.xml" $LigneAChrercher = " <checkupdates>1</checkupdates>" $LigneARemplacer = " <checkupdates>0</checkupdates>"
;Ouvre le fichier original et créé le fichier copie vide IF Open(1, "$FichierXML", 2)=0 AND Open(2, "$FichierXMLPersonnalise", 5)=0 ;lecture de la ligne courante $LigneFichierXML = ReadLine(1) WHILE @ERROR = 0 ;Inscription de la ligne dans un tableau pour effectuer une recherche $TableauChaines = "$LigneFichierXML", "£££" $ResultRechercheChaine = ASCAN($TableauChaines, $LigneAChrercher, , , 1) IF $ResultRechercheChaine = 0 ; remplacement de la ligne si la recherche est positive $LigneFichierXML = $LigneARemplacer ELSE ; ne change rien à la ligne ENDIF ;Recopie la ligne dans fichier personnalisé WriteLine( 2 , $LigneFichierXML + @CRLF) ;lit la ligne courante $LigneFichierXML = ReadLine(1) LOOP ;fermeture des fichiers Close (1) Close (2) ? "Le fichier $FichierXMLPersonnalise à été créé" ELSE BEEP ? "Ouverture des fichiers impossibles" ENDIF
DEL "$PRGDIR\PDFSam112\config.xml"
COPY "$PRGDIR\PDFSam112\config2.xml" "$PRGDIR\PDFSam112\config.xml"
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
|