[英]How to set global variable and
我每半小時運行一次此腳本。 如果值大於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"
$var1 -eq "NOTSENT" -and $main -gt 99
設置任何值。 我在這里需要幫助。
$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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.