Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

CoqBlog

.NET is good :-)
{ Blog de Gaël Covain }

Actualités

PowerShell : script pour encoding de fichier sql sous forme de fonction filtre

Pour ceux qui utiliseraient le petit script que j'avais intégré la dernière fois à mon post "SQL Server : Outil osql : attention à l'encoding des fichiers de scripts SQL...", j'ai en fin de compte crée une fonction filtre, c'est plus pratique.

Les fonctions filtres sont utiles pour travailler avec le pipeline sans pour autant écrire une cmdlet.
Elles ont la forme suivante (seul le bloc PROCESS est obligatoire) :

function nom
{
    BEGIN
    {
        # CODE
        # Ce code sera executé au début du traitement, avant le premier appel au bloc PROCESS.
    }
    PROCESS
    {
        # CODE
        # Ce code sera executé pour chaque objet du pipeline.
    }
    END
    {
        # CODE
        # Ce code sera executé à la fin du traitement, après le dernier appel au bloc PROCESS.
    }
}

Dans notre cas, nous voulons executer le test sur le fichier courant, représenté par la variable $_, et nous écrivons sur le pipeline les objets ne correspondant pas au critères requis :

function Check-UTF16LEEncoding
{
    PROCESS
    {
        $reader=$_.OpenRead()
        if ( $reader.Length -lt 2 -or ( $reader.ReadByte() -ne 0xFF -or $reader.ReadByte() -ne 0xFE ) )
        {
            Write-Output $_
        }
        $reader.Close()
    }
}

A utiliser tel quel ou à ajouter à votre profil, si vous en faites un usage intensif.

 

C'est quand même plus sympa à utiliser :

PS C:\sql
PS> dir -filter *.sql -recurse | Check-UTF16LEEncoding

    Directory: Microsoft.PowerShell.Core\FileSystem::C:\sql\test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        02/08/2007     23:01         91 1252.sql
-a---        02/08/2007     23:01         91 850.sql
-a---        02/08/2007     22:16        184 UTF16BE.sql

 

PS C:\sql
PS> dir -filter *.sql -recurse | Check-UTF16LEEncoding | foreach { $_.FullName }
C:\sql\test\1252.sql
C:\sql\test\850.sql
C:\sql\test\UTF16BE.sql

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 24 août 2007 20:32 par coq

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [WPF] Nouvel article sur c2i.fr par Richard Clark le il y a 1 heure et 7 minutes

- F# nouvelle CTP 1.9.6.2 (update) par Pierrick's Blog le il y a 5 heures et 12 minutes

- La suite ...Proposition de collaboration rédactionnelle entre les communautés de développeurs et Microsoft France par LucasR le 09-05-2008, 17:45

- [Fun] Votre simulateur de vol avec Microsoft ESP par Julien Chable le 09-05-2008, 12:02

- [Best Practices] Customisation du My Site : Comment le modifier en amont et en aval par The Mit's Blog le 09-05-2008, 10:47

- Patrick Tisseghem s'en est allé ... par The Mit's Blog le 09-05-2008, 10:04

- MS AutoCollage par alex# le 09-05-2008, 09:18

- Un grand SharePointeur nous a quitte : Patrick Tisseghem manquera à la communauté ! par RedoBlog - The .NET Gentleman !!! le 09-05-2008, 08:52

- [WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ? par Thomas Lebrun le 09-04-2008, 10:56

- Article sur le filtrage des modèles de site SharePoint par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 09-04-2008, 00:11