Bonsoir,
Comment récupérer un nombre de lignes (60 dans mon cas) pour les recopier dans un nouveau fichier après avoir trouvé le numéro ligne contenant un terme? Le script ci dessous ne recopie que la ligne contenant le texte recherché.
Exemple Dans un fichier de 200 lignes, le terme recherché se trouve en 15eme ligne, je veux récupérer les lignes de 15 à 75.
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Clear-Host $varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition) #On récupére le chemin du répertoire contenant ce script $currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours $currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany("."))) $MonFolder = Get-ChildItem -Path $varCheminRepertoireScript -File | Where-Object {$_.Name -match '.txt$'} #On récupére la liste des fichiers en .txt de ce répertoire foreach ($MyFile in $MonFolder) { #Création du fichier contenant le résultat $EmplacementFichierAvecLeResultat = "$varCheminRepertoireScript\aa\$($MyFile)_Resultat.txt" $MonFichierAvecLeResultat = New-Item -type file $EmplacementFichierAvecLeResultat -Force #Ouverture du fichier à analyser $NomFichieraLire = $MyFile $EmplacementFichier = [string] $EmplacementFichier = "$varCheminRepertoireScript\$NomFichieraLire" $MonFichier = get-content $EmplacementFichier $NumeroDeLine = 0 foreach ($UneLigne in $MonFichier){ $NumeroDeLine++ if ($UneLigne -match 'RAR451' -eq $true) { #Lignes qui contiennent le mot RAR451 $MyLine = "Ligne $($NumeroDeLine) : $($UneLigne)" Write-host $MyLine add-content $MonFichierAvecLeResultat $MyLine } } }
Merci
Partager