Bonjour,
Je viens vers vous car je rencontre un problème.
Je voudrais supprimer des lignes précises dans un fichier.
Mon fichier ce compose ainsi :
Sauvegarde1: réussie.
Sauvegarde2: échouée.
Sauvegarde2: réussie.
Sauvegarde3: réussie.
Sauvegarde4: réussie.
Sauvegarde5: réussie.
Sauvegarde6: réussie.
Je voudrai que si on retrouve 2 fois le même nom de sauvegarde, on supprime la sauvegarde contenant "réussie" pour ne laisser que la sauvegarde "échouée"
C'est la où je bloque, j'arrive à faire un comparatif entre une ligne et la ligne suivante mais je n'arrive pas à supprimer la ligne du fichier.
Merci de votre aide.
Voici mon code
Code :
- #Montage du lecteur CHEMREP
- New-PSDrive -name CHEMREP -Root D:\TEST -PSProvider FileSystem
- #Montage du lecteur CHEMSCRIPT
- #New-PSDrive -name CHEMSCRIPT -Root C:\ISI\Scripts\Log_Powershell -PSProvider FileSystem
- #Ficfinal est le nom du fichier final
- $Ficfinal = "CHEMREP:\FicFinal.txt"
- #NbligneFic récupère le nombre de ligne trouvé dans le fichier.
- $NbligneFic = (get-content $Ficfinal | Measure-Object -Line).lines
- #LectFicLog reçoit le contenu du fichier $MonFichier2
- $LectFicLog = get-content $Ficfinal
- $i = 1
- Function Get-TestLig {
- param ([string]$ResSauv)
- For ($i ; $i -lt $NbligneFic; $i++){
- [string]$NomSauvLgSuiv = [String](Get-Content $Ficfinal | where {
- $_ -ne "$null" } | Select-Object -Index $i).Split(":" )[0]
- [string]$ResSauvLgSuiv = [String](Get-Content $Ficfinal | where {
- $_ -ne "$null" } | Select-Object -Index $i).Split(":" )[1]
- #Write-Host "Nom sauvegarde : $NomSauv et Nom sauvegarde Ligne suiv : $NomSauvLgSuiv"
- If ($NomSauv -like $NomSauvLgSuiv){
- If ($ResSauv -like "réussie" ) {
- ====> Code pour supprimer la ligne <====
- }
-
- Else {
- ====> Code pour supprimer la ligne <====
- }
- }
- }
- }
- $LectFicLog | Foreach {
- Foreach ($LigneFicLog in $_) {
- #Découpage des valeurs de chaque ligne
- [string]$NomSauv = ($_).Split(":" )[0]
- #Découpage des valeurs de chaque ligne
- [string]$ResSauv = ($_).Split(":" )[1]
- get-Testlig $ResSauv
- $i = $i + 1
-
- }
- }
-
- #Déconnexion du lecteur réseau.
- Remove-Psdrive -name CHEMREP
- #Déconnexion du lecteur réseau.
- #Remove-Psdrive -name CHEMSCRIPT
|
Message édité par vb_user le 08-01-2015 à 20:34:20