Recherche basique où l'on cherche motarechercher dans tous les fichiers qui sont dans c:\
Affichage du résultat sur l'écran
Clear-Host
$ErrorActionPreference = "silentlycontinue" #En cas d'erreur, on ne dit rien et on continu
Select-String -Path C:\*.* -Pattern "motarechercher"
Lien vers le fichier : cliquez ici
La même chose, mais on cherche dans les sous-répertoires et on ne traite que les fichiers en .txt
Clear-Host
$ErrorActionPreference = "silentlycontinue" #En cas d'erreur, on ne dit rien et on continu
Get-ChildItem -Path "C:\" -Recurse -File -include "*.txt" | %{Select-String -Path $_.FullName -Pattern "motarechercher"}
Lien vers le fichier : cliquez ici
L'option Pattern prend du regex en entrée, donc vous pourriez rechercher dans un fichier toutes les lignes qui commencent par 12 et qui contiennent le mot chocolat.
Exemple
Select-String -Path "D:\monfichier.txt" -Pattern "^12.*chocolat"
Lien vers le fichier : cliquez ici
Recherche de unmotachercher dans des fichiers en .log situés dans C:\
Quand un résultat est trouvé, on prend en plus par résultat les 5 lignes précédentes et les 5 lignes suivantes
Le résultat est stocké dans un fichier d:\Resultat_recherche.txt
Clear-Host
Select-String -Path C:\nomfichier*.log -Pattern "unmotachercher" -Context 5,5 | out-file d:\Resultat_recherche.txt
Lien vers le fichier : cliquez ici
Le script ci-dessous ouvre un fichier et analyse toutes ses lignes.
Pour chaque ligne un teste if est fait pour voir si la ligne est retenue.
Si c'est le cas elle est recopier dans un fichier de réponse.
Le script demande le nom d'un fichier .txt à filtrer.
A défaut c'est le premier fichier .txt trouvé dans le répertoire du script qui est traité.
Il faut modifier la fin du script pour adapter le filtre qui va être appliqué.
Le résultat est directement affiché à l'écran ainsi que dans un fichier texte suffixé _Resultat.txt.
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
}
}
Lien vers le fichier : cliquez ici
Pages Web
Site Web | Description |
---|---|
Thomasmaurer.ch | Powershell: search for string or grep for powershell |
Article(s) précédent(s)
Article(s) en relation(s)