簡體   English   中英

如何設置全局變量和

[英]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

請參閱http://technet.microsoft.com/en-us/library/ff730964.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM