2017-03-08 3 views
1

Ich bin ziemlich neu in PowerShell. Ich habe eine Variable erstellt, die einige Daten enthält, die ich dann an einen E-Mail-Generator weitergeben:PowerShell - Pipeline - hart codierte Programm vs Variable

$strEmailFile = "C:\Testing\SomeTextFile.txt" 

cat $strEmailFile | E:\sendmail.exe -t 

Mein Problem ist, ich will nicht zu hart Code den Antrieb für die E-Mail-generierende Software. So würde ich den Code mag, so etwas sein:

$strEmailFile = "C:\Testing\SomeTextFile.txt" 

$Dir = "E:" 

cat $strEmailFile | $Dir + "\sendmail.exe" -t 

Aber ich halte die folgende Fehlermeldung erhalten:

"Expressions are only allowed as the first element of a pipeline."

Gibt es eine Möglichkeit für mich, um die Pipeline zu verwenden, sondern müssen nicht Hard- Code?

+0

Sie brauchen 'sendmail.exe' nicht mit PowerShell, wenn Sie' Send-MailMessage' haben. –

Antwort

1

Sie sollten in Send-MailMessage suchen, aber der Unterschied zwischen Ihren Versuchen besteht darin, dass der erste ein Ausdruck ist, und der zweite eine Zeichenfolge ist, und Sie können nicht in eine Zeichenfolge pipen.

Aber wenn Sie die call operator & Sie könnten Rohr in das:

cat $strEmailFile | & ($Dir + "\sendmail.exe") -t 

Beachten Sie, dass Klammern müssen zuerst den Ausdruck ausführen, der die Variable und die Zeichenfolge verkettet).

Verwandte Themen