Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

CoqBlog

.NET is good :-)
{ Blog de coq }

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

- Technofolies, votre évènement numérique de l'année par Le Blog (Vert) d'Arnaud JUND le 09-26-2014, 18:40

- Xamarin : From Zero to Hero par Fathi Bellahcene le 09-24-2014, 17:35

- Conférences d’Automne 2014 par Le blog de Patrick [MVP SharePoint] le 09-24-2014, 14:53

- [TFS] Supprimer un projet de Visual Studio Online par Blog de Jérémy Jeanson le 09-22-2014, 20:42

- Nouveau blog en anglais / New blog in english ! par Le blog de Patrick [MVP SharePoint] le 09-18-2014, 18:42

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

- [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

- Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

- [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

- [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25