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

- Compte rendu : SharePoint / O365 : des pratiques pour une meilleure productivité par The Mit's Blog le 12-12-2014, 18:11

- [TFS] Suppression des feature SQL Entreprise en masse par Blog de Jérémy Jeanson le 12-06-2014, 09:18

- [Clean Code] règles de nommage par Fathi Bellahcene le 12-04-2014, 22:59

- Windows To Go 10 et Upgrades impossibles par Blog de Jérémy Jeanson le 12-04-2014, 21:38

- SharePoint OnPremise: Statistiques d’utilisation pour traquer les sites fantomes par Blog Technique de Romelard Fabrice le 12-03-2014, 10:28

- SharePoint 2007: Script PowerShell permettant le backup de toutes les collections de sites d’une application Web par Blog Technique de Romelard Fabrice le 12-02-2014, 10:00

- Xamarin : un choix précieux par .net is good... C# is better ;) le 12-01-2014, 15:10

- Office 365: Comparaison des composants pour préparer votre migration de SharePoint 2007 vers Office 365 par Blog Technique de Romelard Fabrice le 11-28-2014, 16:20

- Créer un périphérique Windows To Go 10 ! par Blog de Jérémy Jeanson le 11-21-2014, 04:54

- RDV à Genève le 12 décembre pour l’évènement “SharePoint–Office 365 : des pratiques pour une meilleure productivité !” par Le blog de Patrick [MVP Office 365] le 11-19-2014, 10:40