Question [Résolu]Séparer des valeurs dans une ligne de text

Plus d'informations
il y a 15 ans 4 mois #8081 par FO
Bonjour à tous,

Etant débutant, je me permets de vous demander de l'aide.

Je m'explique :

J'ai une variable dans laquelle je récupère plusieurs adresses Email

$mails : 'toto@toto.fr/titi@toto.fr/tata@toto.fr'

Je souhaiterai pouvoir récupérer chaque adresse Email dans une variable unique

$mails1 = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'
$mails2 = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'
$mails3 = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'

Pour information je peux mettre autre chose que le slash (/) dans ma variable $mails.

Je voulais faire comme avec un fichier texte, utiliser - delimiter / mais je sais pas faire.

Merci d'avance pour votre aide.<br><br>Message édité par: Benjy, à: 18/11/10 14:06

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8082 par SUSINI Vincent
Salut,

Tu peux utiliser la commande split pour trier tes mails :
[code:1]
$mails = 'toto@toto.fr/titi@toto.fr/tata@toto.fr'
$mails -split \&quot;/\&quot;

Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
[/code:1]

Tu peux aussi mettre le résultat dans une liste pour agir sur chaque mail

[code:1]$mails = 'toto@toto.fr/titi@toto.fr/tata@toto.fr'
$liste_mails = $mails -split \&quot;/\&quot;
ForEach ($email in $liste_mails)
{
Write-Host $email
}
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8084 par FO
il y a peut être une autre possibilité :

Mon but étant d'envoyer un mail (avec la classe system.net.mail) avec plusieurs destinataires (Récupéré d'un fichier texte et mis dans la variable $mails).

J'utilise cette commande pour définir le destinataire
$Message.To.Add('Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.')

Lorsque je veux rajouter un autre destinataire je suis obliger de rajouter un $Message.To.Add.

La syntaxe suivante ne fonctionne pas :

$Message.To.Add('toto@toto.fr;titi@too.fr')

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8085 par FO
Merci escandil pour ton aide.

Dernière petite chose, de quelle manière je peux mettre chaque email dans une variable unique en sachant que le nombre de destinataires peut varier ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8086 par FO
Ou comment quelle commande utiliser à la place de $Message.To.Add pour qu'il me prenne le variable $liste_mails

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8087 par SUSINI Vincent
Tu peux utiliser un tableau dynamique pour stocker tes adresses mails.

[code:1]
Clear
$mails = 'toto@toto.fr/titi@toto.fr/tata@toto.fr'

#initialisation du tableau
$Liste_mails = @()

$liste_mails = $mails -split \&quot;/\&quot;
[/code:1]

Chaque mail est ainsi dans une variable unique (en fonction de l'index de ton tableau)
[code:1]
Write-Host \&quot;Mon premier mail est : \&quot; $liste_mails[0]
Write-Host \&quot;Mon dernier mail est : \&quot; $liste_mails[($liste_mails.Length -1)]\&quot; ou encore \&quot; $liste_mails[-1]
[/code:1]

Il y a peut-être plus propre, mais ça fonctionne en tous cas :)



Edit :
Je ne connais pas du tout les méthodes d'envois de mail, mais si tu dois simplement répéter la commande

[code:1]$mails = 'toto@toto.fr/titi@toto.fr/tata@toto.fr'
$liste_mails = $mails -split \&quot;/\&quot;
ForEach ($email in $liste_mails)
{
$Message.To.Add($email)
}[/code:1]<br><br>Message édité par: Escandil, à: 18/11/10 13:55

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.059 secondes
Propulsé par Kunena