[RESOLU] [POWERSHELL] Briser lignes de codes

Briser lignes de codes [RESOLU] [POWERSHELL] - Shell/Batch - Programmation

Marsh Posté le 27-08-2014 à 19:22:13    

Bonjour à tous,
 
Ma question peut paraitre stupide, mais je ne trouve pas la solution. Je souhaiterai,pour une question de lisibilité, briser mes lignes de codes.
L'équivalent du _ dans Vbscript.
 
Voici mon code

Code :
  1. New-PSDrive -name ZIC -Root C:\Users\XXXX\Music -PSProvider FileSystem
  2. $expediteur = "blabla@blabla.fr"
  3. $destinataire = "blabla@blabla.fr"
  4. $serveur = "smtp.orange.fr"
  5. $objet = "test donnees"
  6. $texte = get-item ZIC:\Compil\*
  7. $texte1 = get-item ZIC:\Compil2\*
  8. $texte2 = get-item  ZIC:\Compil3\*
  9. $message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte `` <==la coupure se fait ici
  10. "-----------"`r$texte1`r"-----------"`r$texte2
  11. $SMTPclient = new-object System.Net.Mail.SmtpClient $serveur
  12. $SMTPclient.Send($message)


 
J'ai essayé _ puis ` mais sans succès.  
 
Merci pour votre aide.


Message édité par vb_user le 30-12-2014 à 14:13:21
Reply

Marsh Posté le 27-08-2014 à 19:22:13   

Reply

Marsh Posté le 27-08-2014 à 21:58:22    

A première vue ce serait l'accent grave:

Code :
  1. $text = `
  2. "bonjour"


 
PS: mais suivant les cas, notamment les strings, tu as d'autres opérateurs:
http://stackoverflow.com/questions [...] powershell

Reply

Marsh Posté le 28-08-2014 à 08:40:13    

Voici le message d'erreur que j'ai, lorsque je met un ` :
New-Object : Impossible de trouver un paramètre positionnel acceptant l'argument « ----------- ».
Au niveau de C:\Users\xxxx\Scripts\Powershell\sauvegarde_bdd.ps1 : 15 Caractère : 22
+ $message = new-object <<<<  System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte `
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
 
Exception lors de l'appel de « Send » avec « 1 » argument(s) : « La valeur ne peut pas être null.
Nom du paramètre : message »
Au niveau de C:\Users\xxxxx\Scripts\Powershell\sauvegarde_bdd.ps1 : 20 Caractère : 17
+ $SMTPclient.Send <<<< ($message)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
 
Avec le code du dessus, j'ai remplacé `` par `.

Reply

Marsh Posté le 28-08-2014 à 11:18:27    

Voila ce que mon powershell a sorti:
 

Code :
  1. Windows PowerShell
  2. Copyright (C) 2009 Microsoft Corporation. Tous droits réservés.
  3. PS C:\Users\Piou>
  4. PS C:\Users\Piou>
  5. PS C:\Users\Piou> $text = `
  6. >> "bonjour"
  7. >>
  8. PS C:\Users\Piou>
  9. PS C:\Users\Piou> echo $text
  10. bonjour
  11. PS C:\Users\Piou>


 
 
Ca a bien marché... Etrange donc, c'est ptete la commande new-object qui pour une raison X ne prend pas en compte correctement ce paramètre...

Reply

Marsh Posté le 30-12-2014 à 14:12:19    

Bonjour,
 
Après plusieurs mois de non réponse de ma part, je vais enfin cloturer la demande. J'ai résolu pour problème.
 
Problème :

Code :
  1. $message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte `` <==la coupure se fait ici
  2. "-----------"`r$texte1`r"-----------"`r$texte2


 
Solution :

Code :
  1. $message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, "$texte `
  2.     -----------`r$texte1`r-----------`r$texte2"


 
Je n'avais pas mis le corps du message comme 'string'. Lorsque je met les " avant ma variable $texte et que je termine la ligne avec les " cela fonctionne car il prend le bloc comme du texte. Ce qui n'était pas le cas dans la partie "Problème" où j'indiquais une variable et non du texte.
 
Cela diffère du VBscript d'où mon erreur.
 
Je clos donc la discussion.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed