我这个脚本每半小时运行一次。如果值大于99,它会发送一封电子邮件,但如果值仍为99,我不希望它每隔30分钟发送一封电子邮件。
我只想发一次电子邮件。如果该值小于99然后再次大于99,则仅发送一次电子邮件。
这是脚本
$main = 100
IF ($main -gt 99) {
Write-Host $main
##Send Email
}
else
{
Write-Host "Not Greater than 99."
}
我尝试了什么,它不起作用
我尝试使用全局变量,如果$var1 -eq "NOTSENT" -and $main -gt 99
它将发送电子邮件并设置$var1 = "SENT"
,则设置相等。我在这里需要帮助。
$main = 100
$var1
IF (($main -gt 99) -and ($var1 -eq "NOTSENT")) {
Write-Host $main
##Send Email
$var1 = "SENT"
}
else
{
Write-Host "Not Greater than 99."
$var1 = "NOTSENT"
}
答案 0 :(得分:2)
"全球"只是意味着它在创建的PS会话中是全局的。当会话结束时,变量就消失了。如果需要将该值从一个会话持久保存到另一个会话,则需要将其写入磁盘,然后在下次运行脚本时将其读回。
答案 1 :(得分:2)
但是,您可以设置用户级别或计算机级别的环境变量,而不是写入磁盘:
[Environment]::SetEnvironmentVariable('Variable', 'Value' , 'User')
[Environment]::SetEnvironmentVariable('Variable', 'Value' , 'Machine') # requires elevation