IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

suppression des accents de variables provenant d'un fichier CSV [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut suppression des accents de variables provenant d'un fichier CSV
    Bonjour,
    J'ai réalisé un script récemment pour ajouter des contacts dans un annuaire Exchange au moyen d'un CSV pré-rempli, mais je n'arrive pas à oter les accents des prénoms et noms quand il y en a...

    En recherchant ça et là j'ai trouvé qu'il fallait passer par une fonction et j'en ai dénichées 2 dont une qui ne fonctionnait pas visiblement.
    Pour celle qui fonctionne, mon soucis est qu'elle ne me corrige les accents que si j'indique des variables déclarées directement dans mon script (sans appel depuis le CSV). Si je cherche à appeler ma variable depuis le CSV puis de la remanier, l'accent n'est pas supprimé mais remplacé par un ?".

    voici mon script actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Write-host "######################################################" -ForegroundColor green
    Write-host "####     Creation contacts via CSV)" -ForegroundColor green
    
    $csv = Import-Csv -Path "Contacts.csv" -Delimiter ";"
    
    # début fonction de suppression des accents
    function Remove-accent([string]$string)
    {
       $objD = $string.Normalize([Text.NormalizationForm]::FormD)
       $sb = New-Object Text.StringBuilder
    
       for($i = 0; $i -lt $objD.Length; $i++) {
           $c = [Globalization.CharUnicodeInfo]::GetUnicodeCategory($objD[$i])
           if($c -ne [Globalization.UnicodeCategory]::NonSpacingMark) {
             [void]$sb.Append($objD[$i])
           }
       }
       return "$sb".Normalize([Text.NormalizationForm]::FormC)
    }
    # fin fonction de suppression des accents
    
    
    foreach($user in $csv) 
    { 
    #gestion des champs du fichier CSV
     
    $emailAccount = $user.email   							# adresse email du contact
    $prenom1= $user.prenom.ToLower()						# prénom passé en minuscules
    $prenom2= Remove-accent($prenom1)						# prénom passé sans accents
    $prenom= (Get-Culture).textinfo.totitlecase($prenom2)   # Prenom du contact
    $nom1= $user.nom.ToUpper()  							# NOM du contact passé en majuscule
    $nom= Remove-accent($nom1)								# NOM du contact sans accents
    $fullname= $nom + " " + $prenom							# NOM Prenom du contact (nom complet)
    $alias= $nom + $prenom
    
    echo $prenom1 $prenom2 $prenom
    j'ai remplacé la commande de création de contact exchange par un echo $prenom1 $prenom2 $prenom et j'obtiens des résultats s?verine (2x) et S?Verine pour le dernier
    Donc en gros comment arriver à décoder l'accent du CSV pour le récupérer en variable.

    Visiblement la fonction est OK, c'est plus au niveau de la variable tirée du CSV que mon problème se situe.

    Merci par avance pour votre aide

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    vérifie l'encodage de ton fichier d'origine.
    Et si tu transformes les accents tu ne devrais pas récupérer '?' mais une lettre...

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut solution
    Autant pour moi, j'avais oublié de remettre l'encodage en UTF8 avant exploitation de mon CSV
    C'est ça de scripter dans la nuit ^^

    Là ça fonctionne bien

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yakalelo57 Voir le message
    C'est ça de scripter dans la nuit ^^
    Une parade

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut csv
    ah dac, pour ma part je convertis mes CSV en UTF8 et me base ensuite mon script sur les variables du CSV converti

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression des accents sur variable
    Par barale61 dans le forum Langage
    Réponses: 11
    Dernier message: 22/12/2015, 20h08
  2. Réponses: 0
    Dernier message: 02/04/2014, 11h21
  3. suppression des accents dans un fichier sous csh
    Par zpipol dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 29/10/2008, 22h58
  4. Suppression des Accents
    Par Tanelorn dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/12/2007, 01h01
  5. Suppression des accents et mise en Majuscules
    Par mlzim dans le forum Contribuez
    Réponses: 4
    Dernier message: 07/11/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo