Je dois ajouter un message spécial dans des signatures outlook pour mes utilisateurs.
C'est facile pour ajouter le message. En 2 ligne c'est réglé, le script va dans le répertoire qui va bien et ajoute la phrase qui va bien au bon endroit dans le ou les signatures présentes dans le répertoire.
En revanche, je souhaiterais que ce message ne soit pas ajouté plusieurs si jamais le script est lancé plusieurs fois. Donc ajouter une vérification pour voir si la phrase en question n'est pas déjà présente dans les fichiers HTML (j'ai plusieurs signatures par poste).
Et c'est là mon problème, ma fonction de recherche s'arrête si la phrase est présente dans le 1er fichier trouvé, mais ne cherche pas dans le suivant.
Ca ne correspond donc pas à mon besoin.
Je veux vraiment ajouter cette phrase à tous les fichiers HTML, mais uniquement une fois
Ci-dessous mon code :
Qu'est-ce qui n'est pas bon à votre avis ?
Code : Tout sélectionner
$sFind = "</div>"
$sFilename = _FileListToArray(@AppDataDir & "\Microsoft\Signatures\", "*.htm", 1, True)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
For $i = 1 To $sFilename[0]
$search = "If you read this message, you are the winner"
Global $iLine = 0, $sLine = '', $iValid = 0
$hFile = FileOpen($sFilename[$i])
; find the line that has the search string
While 1
$iLine += 1
$sLine = FileReadLine($hFile)
If @error = -1 Then ExitLoop
; test the line for the $search string until the flag $iValid is set
If StringInStr($sLine, $search) And Not $iValid Then
$iValid = 1
ContinueLoop
EndIf
If $iValid Then
$iValid += 1
ConsoleWrite($iLine & ':' & $sLine & @CRLF)
If $iValid = 1 Then ExitLoop
Exit
EndIf
WEnd
FileClose($hFile)
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
For $i = 1 To $sFilename[0]
$iMsg = @CRLF
$iMsg &="<p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:14.0pt;font-family:""Lucida Sans Unicode"";color:black'>If you read this message, you are the winner....</span></p>" & @CRLF
$iMsg &= "</div>" & @CRLF
$iRetval = _ReplaceStringInFile($sFilename[$i], $sFind, $iMsg)
Next
Kreg