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 :

Pb Import-CSV / Export-CSV [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut Pb Import-CSV / Export-CSV
    Bonjour à tous,

    Voilà, dans mon script j'ai plusieurs variables que j'essaie d'exporter dans un fichier .csv
    Voilà le bout de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mytab | select sam,sn,givenName,title,mail | Export-Csv -delimiter ";" -path C:\testfile.csv -NoTypeInformation

    Cela se fait bien mais ensuite que je veux l'importer dans powershell ça ne marche pas , en effet ça me donne cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $fil = import-csv "C:\testfile.csv"
     $fil
    
     sam;"sn";"givenName";"title";"mail"
    -------------------------------------
    rv;"test";"test1";"title1";"lala@msn.com"
    Alors que j'aimerais plus quelque chose comme ça :

    sam sn givenName title mail
    ---- ---- ----------- ------ --------
    rv test test1 title1 lala@msn.com


    Si vous avez une idée... merci bien

  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,
    Citation Envoyé par magzz69
    Si vous avez une idée...
    Tu peux utiliser, sous PS v2, le cmdlet ConvertTo-Csv qui envoi les objets dans le pipeline:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dir | Select Name,Length | ConvertTo-Csv -delimiter ";" -NoTypeInformation|Write-Warning
    Ainsi tu peux modifier la première ligne puis créer le fichier.
    Une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     #Utilise une fonction de la librairie de scripts Add-Lib
    cd $addlib.Scripts
    cd PackageLinq
    . .\PackageOperatorsLinq.ps1
    Function Set-HeaderCsv
    { #Ce type de fonction ne contient que le bloc End
      #La variable $Input est donc accessible et 
      #contient l'intégralité des objets issus du pipeline  
      "Name Length"
      "---- -----"
      $input 
    }
    Dir | Select Name,Length | ConvertTo-Csv -delimiter ";" -NoTypeInformation|Skip-Count 1|Set-HeaderCsv
    Je te laisse paramètrer la fonction Set-HeaderCsv

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut
    Alors, j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dir | Select Name,Length | ConvertTo-Csv -delimiter ";" -NoTypeInformation|Write-Warning
    Dir c'est bien le chemin de mon fichier que j'ai exporter avant .csv?
    Et select pour selectionner les champs du même fichier? donc pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin | Select sam,sn,givenName,title,mail | ConvertTo-Csv -delimiter ";" -NoTypeInformation|Write-Warning
    Cela ne marche pas

  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 magzz69
    Dir c'est bien le chemin de mon fichier que j'ai exporter avant .csv?
    Non, Dir est un alias de Get-ChildItem. J'ai pris un exemple que tout le monde peut tester. On renvoi le contenu du répertoire courant dans le pipeline.
    Citation Envoyé par magzz69
    Cela ne marche pas
    Tu veux dire que tu n'as aucun résultat ou que celui-ci ne correspondant à ton attente ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut
    Je crois qu'en fait je n'ai pas compris car ça me met bien les nom et la longueur de mes fichier dans le répertoire courant en ligne de commande donc :

    AVERTISSEMENT : "Name";"Lenght"
    AVERTISSEMENT : "Chemintest.txt";"417"

    Mais ce que je n'arrive pas trop à voir c'est comment est ce que je peux mettre mes variable $sn,$sam,$givenName dans un fichier csv en les distinguant et non en faisant qu'une seule et même variable ou il y a : rv;"test";"test1";"title1";"lala@msn.com"

    Je souhaiterais que la premiere colonne = $sn la deuxieme $sam etc

    Comme ça quand je vais le réimporter je pourrais mettre 1colonne => 1variable

    Mais je n'ai toujours pas compris le principe

  6. #6
    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 magzz69
    Mais ce que je n'arrive pas trop à voir c'est comment est ce que je peux mettre mes variables $sn,$sam,$givenName dans un fichier csv en les distinguant et non en faisant qu'une seule et même variable ou il y a : rv;"test";"test1";"title1";lala@msn.com
    Il s'agit de noms de propriétés d'un objet et pas de noms de variable.
    Dans un fichier CSV il n'y a pas de variable, mais juste du texte, des lignes de texte structurées.
    Et effectivement je n'ai pas traité chaque ligne comme tu le souhaitais, mais juste la première.
    Citation Envoyé par magzz69
    Comme ça quand je vais le réimporter je pourrais mettre 1colonne => 1variable
    Si tu modifies la structure du fichier csv généré, le cmdlet import-csv ne fonctionnera plus .

    J'ai un peu de mal à comprendre ce que tu veux faire , je pensais que tu voulais générer un fichier texte ASCII.
    Quel est l'objectif ?
    D'ou proviennent tes données ?
    Quels usage comptes-tu en faire ?
    Que veux-tu rendre persistant en utilisant un fichier ?
    etc.

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

Discussions similaires

  1. [CSV] export csv pour lecture sur mac
    Par lodan dans le forum Langage
    Réponses: 2
    Dernier message: 24/09/2008, 16h42
  2. [CSV] Export CSV valeurs décimales
    Par Nemesis007 dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2008, 09h39
  3. [CSV] Export CSV valeurs/chaine de caractères
    Par Nemesis007 dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2008, 13h53
  4. [CSV] export CSV sous IE
    Par Rawone dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2006, 10h10
  5. [CSV] Export CSV avec PHP (saut de ligne)
    Par Indy80 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 16h08

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