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 :

Récupérer chaque ligne d'un pipeline dans une variable [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 42
    Points
    42
    Par défaut Récupérer chaque ligne d'un pipeline dans une variable
    Bonjour à tous

    Mon titre n'est peut-être pas très explicite, mais je ne savais pas du tout comment expliquer mon problème...

    Dans mon script, j'ai une boucle me permettant d'envoyer des mails à des adresses mail contenu dans un fichier.

    Je demande à mon script d'afficher au fur et à mesure sa progression, en listant l'heure et l'adresse mail traitée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sortieEcran = $date + ' ' + $_.mail
    	write-host $sortieEcran
    renvoie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    date heure adresse 1
    date heure adresse 2
    date heure adresse 3
    etc
    A la suite de ça, je veux envoyer un mail récapitulatif dont le corps du mail est composé de $sortieEcran... sauf que, tout ce que je récupère, c'est la dernière adresse traitée.

    Avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Send-MailMessage -to $dest -subject $subject -Body $sortieEcran -SmtpServer $SMTP -from $exp
    Dans le mail de récap, je ne retrouve que :

    Mais moi, je veux l'intégralité de ce qui est passé dans $sortieEcran

    J'en déduis qu'il faut donc que je stocke chaque ligne dans une variable... et que j'y ajoute toutes les lignes qui suivent tout en conservant les lignes précédentes... mais j'avoue ne pas du tout savoir comment faire ça

    J'ai essayé un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sortieEcran = $date + ' ' + $_.mail
    $test = Get-content sortie
    	write-host $sortieEcran
    mais évidemment, ce n'est pas ça...

    Donc si quelqu'un a une solution (simple ) à me proposer... je prends !

    Merci

  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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu crées une liste avant de débuter ta boucle :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $List=new-Object System.Collections.Arraylist
    Dans le traitement de la boucle, tu collectes les données :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sortieEcran = '{0} {1}' -F $date,$_.mail
    [void]$list.Add( $sortieEcran )
    Send-MailMessage -to $dest -subject $subject -Body $sortieEcran
    En fin de traitement tu récupères la liste :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $List
     #séparateur de champs 
    $ofs="`r`n"
    "$List"

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 42
    Points
    42
    Par défaut
    Merci beaucoup Laurent !
    J'avais loupé une petite subtilité au début, mais finalement, c'est bon, ça fonctionne !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2013, 22h59
  2. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  3. Récupérer le contenu de la requête dans une variable
    Par cgonzalez dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2007, 11h44
  4. ligne de fichier txt dans une variable
    Par suya95 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 10h14
  5. récupérer le résultat d'un SELECT dans une variable ?
    Par budhax dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2006, 10h24

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