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

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le il y a 23 heures et 39 minutes

- [ #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

- [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

- Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

- Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31

- [ #Yammer ] How to change interface language ? Comment changer la langue de l’interface ? par Le blog de Patrick [MVP SharePoint] le 08-20-2014, 14:21