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("."))) $ValeurParDefaut = "FichierAFiltrer.txt" #Nom du fichier par defaut dans lequel on va faire la recherche $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) { $ValeurParDefaut = $MyFile.name #Le premier fichier .txt trouvé servira de valeur par défaut break } $ReponseUtilisateur = read-host "Entrez le nom du fichier à filtrer (réponse par défaut si vide : $($MyFile.name)" if ($ReponseUtilisateur.Length -eq 0) {$ReponseUtilisateur = $ValeurParDefaut} #Si l'utilisateur n'a pas répondu, on met une valeur par défaut #Création du fichier contenant le résultat $EmplacementFichierAvecLeResultat = "$varCheminRepertoireScript\$($currentScriptName)_Resultat.txt" $MonFichierAvecLeResultat = New-Item -type file $EmplacementFichierAvecLeResultat -Force #Ouverture du fichier à analyser $NomFichieraLire = $ReponseUtilisateur $EmplacementFichier = [string] $EmplacementFichier = "$varCheminRepertoireScript\$NomFichieraLire" $MonFichier = get-content $EmplacementFichier $NumeroDeLine = 0 foreach ($UneLigne in $MonFichier){ $NumeroDeLine++ if ($UneLigne -match 'studio' -eq $true) { #Lignes qui contiennent le mot studio #if ($UneLigne -match '^footer_' -eq $true) { #Lignes qui commencent par footer__ #if ($UneLigne -match 'jpg$' -eq $true) { #Lignes qui se terminent par .jpg #if (($UneLigne -match '^210') -and ($UneLigne -match 'jpg$') -eq $true) { #Lignes qui commencent par 210 et qui se terminent par .jpg #Where {$_.name -notlike "*014*"} $MyLine = "Ligne $($NumeroDeLine) : $($UneLigne)" Write-host $MyLine add-content $MonFichierAvecLeResultat $MyLine } }