PowerShell - 管道 - 硬编码程序与变量

时间:2017-03-08 18:41:05

标签: powershell

我是PowerShell的新手。我创建了一个包含一些数据的变量,然后将其传递给电子邮件生成器:

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

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

我的问题是我不想硬编码电子邮件生成软件的驱动器。所以我希望代码是这样的:

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

$Dir = "E:"

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

但我一直收到以下错误:

  

“表达式只允许作为管道的第一个元素。”

我有没有办法使用管道而不必硬编码?

1 个答案:

答案 0 :(得分:1)

您应该查看Send-MailMessage,但您尝试的区别在于第一个是表达式,第二个是字符串,您无法管道输入字符串。

但是如果你使用call operator &,你就可以进入:

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

请注意,您需要使用括号来首先运行连接变量和字符串的表达式。