首页 > 解决方案 > 在 Send-MailMessage 的标题中添加一个计数器

问题描述

我想添加一个计数器,所以每发送一封电子邮件,发送的票数就会增加 1。我让它在另一个 powershell 脚本上工作,但在这个脚本上,似乎出了点问题。也许有人可以帮我解决这个问题:

编辑:在发送每封电子邮件后,计数器始终显示 #1。

if ($Counter -eq $null){

$Counter = 1
}

$Email       = "test"
$Internal    = ""
$Subject     = "Error #$Counter - Test - $(Get-Date -format dd/MM/yy)"

[array]$attachments = Get-ChildItem "path"

if ([array]$attachments -eq $null) {
}

else {

$Msg = @{
    to          = $Email
    cc          = $Internal
    from        = "someone"
    Body        = 'body'
    subject     = "$Subject"
    smtpserver  = "server"
    BodyAsHtml  = $True
    Attachments = $attachments.fullname

}

Send-MailMessage @Msg

$Counter++

}

标签: powershell

解决方案


如果您希望计数器始终增加,您可以将其存储在注册表中或将其存储在文本文件中,如下所示:

if(-not(Test-Path C:\PathTo\Counter.txt)){
   1 > C:\PathTo\Counter.txt #create the file with a default counter
}
$TicketCounter = [int](Get-Content C:\PathTo\Counter.txt)

#restOfYourScriptHere
$TicketCounter++ #as needed to increment

#end of your Script

$TicketCounter > C:\PathTo\Counter.txt  #saves the new counter value


推荐阅读