当我尝试实现多行电子邮件正文时,我不断收到错误消息。我怀疑语法错误。找不到在线示例。有什么建议么?
错误: Unexpected token 'EmployeeName"] to $AccountExpire"' in expression or statement.
$subject = "Email for $item["EmployeeName"]. Date expire $AccountExpire"
$body=@"
Name: $item["Employee"]
Class: Contractor
Depart: $item["Depart"]
Region: $item["Region"]
Manager: $item["Manager"]
New Date: $NewDate
"@
SendUpdateEmail($subject,$Body)
Run Code Online (Sandbox Code Playgroud)
您需要使用子表达式($())对这些数组索引操作进行转义:
$subject = "Email for $($item["EmployeeName"]). Date expire $AccountExpire"
Run Code Online (Sandbox Code Playgroud)
多行字符串(或在这里被正式称为here的字符串)也是如此:
$body=@"
Name: $($item["Employee"])
Class: Contractor
# and so on...
"@
Run Code Online (Sandbox Code Playgroud)
就个人而言,我将使用多行模板,并使用-fformat运算符填写值:
$bodyTemplate=@'
Name: {0}
Class: Contractor
Depart: {1}
Region: {2}
Manager: {3}
New Date: {4}
'@
$body = $bodyTemplate -f $item["Employee"],$item["Depart"],$item["Region"],$item["Manager"],$NewDate
Run Code Online (Sandbox Code Playgroud)
使用时-f,您还可以设置不同类型的数据的格式,因此,如果$NewDate是[DateTime]对象,则可以在模板内部控制其格式,例如:
@'
Date: {0:HH:mm:ss}
'@ -f (Get-Date)
Run Code Online (Sandbox Code Playgroud)
会产生:
Date: 14:55:09
Run Code Online (Sandbox Code Playgroud)
(假设您在下午五点到三点完成了此操作)
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |