vendredi 31 mai 2013

Rechercher un texte dans un fichier.

Dans certain cas, j'ai besoin d'identifier les fichiers contenant une chaine de caractères bien précise. Par exemple, lors d'une migration de serveur, je dois trouver les scripts de login contenant le nom de l'ancien serveur afin de les modifier. Cet exemple recherche dans les scriptes de logins ceux qui contiennent le nom de l'ancien serveur, et les copies en local.

 
#Recherche un nom de serveur dans les scripts de login.

$path="\\ServerAd1\netlogon\"

Get-ChildItem -Force $path |
  foreach {
            $file = $_
            $analyse = $path + $file
            $cf = 0
            get-content $analyse |
              foreach {
                        $string = $_
                        $string = $string.ToUpper()
                        if ($string.contains('SERVEUR1')) { $cf = 1 }
                      }
            if ($cf -eq 1)
              {
                Write-Host $analyse
                copy-item $analyse -destination "C:\dossier"
              }
          }
#Fin.