我每半小时运行一次这个脚本。如果值大于 99,它会发送电子邮件,但如果值仍然是 30,我不希望它每 99 分钟发送电子邮件一次。
我只希望它发送电子邮件一次。 如果该值返回小于 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"
}
全局"仅表示它对于创建它的 PS 会话是全局的。 会话结束时,变量将消失。 如果需要将该值从一个会话保存到另一个会话,则需要将其写出到磁盘,然后在下次脚本运行时读回该值。
mjolinor关于它不起作用的原因是正确的;我不会重申这一点。
但是,您可以设置用户级别或计算机级别的环境变量,而不是写入磁盘:
[Environment]::SetEnvironmentVariable('Variable', 'Value' , 'User')
[Environment]::SetEnvironmentVariable('Variable', 'Value' , 'Machine') # requires elevation
见 http://technet.microsoft.com/en-us/library/ff730964.aspx