;Modification du boot.in de windows 2000,XP ou vista pour ramené de décomptage des secondes de 30 à 0 secondes
;A partir du fichier que j'avais fait en C quand j'étais plus jeune pour Windows 2000
;Malheureusement je n'ai plus le code source
;Sinon avec la commande bootcfg.exe pour Windows XP
;JEAN-RENE DANIS 18/11/08
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;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
;Lancement d'un commande en fonction du system d'exploitation
$TableauDeValeur = @PRODUCTTYPE,''
$ResultatRecherche = ASCAN($TableauDeValeur, 'Windows XP', , , 1)
; Retourne 0 si la chaine "Windows XP" est dans @PRODUCTTYPE
IF $ResultatRecherche = 0
? "Modification pour Windows XP : @PRODUCTTYPE"
$commande = 'bootcfg /timeout 0'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
$ResultatRecherche = ASCAN($TableauDeValeur, 'Windows 2000', , , 1)
; Retourne 0 si la chaine "Windows 2000" est dans @PRODUCTTYPE
IF $ResultatRecherche = 0
? "Modification pour Windows 2000 : @PRODUCTTYPE"
;Déprotection d'un fichier
$FichierADeproteger = "c:\boot.ini"
? "Déprotection de $FichierADeproteger"
SETFILEATTR ($FichierADeproteger, 128)
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Installation du programme
$commande = '@SCRIPTDIR\bootini1.exe'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 2
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Protection d'un fichier
$FichierADeproteger = "c:\boot.ini"
? "Protection de $FichierADeproteger"
SETFILEATTR ($FichierADeproteger, 7)
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
? "Ce systeme d'exploitation n'est pas prise en compte"
GOTO "finerreur"
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("")
|