我有一個腳本可以查看應用程式上的多載表。
如果表格超過表格最大值的 90%,則腳本會發送一封包含過載表格的電子郵件。
為此,我創建了一個分析表的函式:
# elemt is the current data and Max is the maximum of the table
$elemt = @($PcaDos, $PcaMal, $PcaRdv, $Pc2Tpt, $Pc2Dti, $Pc2His, $PcaLigFact)
$tableMax = @($PcaDosMax, $PcaMalMax, $PcaRdvMax, $Pc2TptMax, $Pc2DtiMax, $Pc2HisMax, $PcaLigFactMax)
# calculates 90% of the maximum of the table
$total = @()
Foreach($item in $tableMax){
$value = $item * 0.9
$total = $value
}
function OverloadTable{
param(
$variable,
[int]$num,
[String]$table
)
if($Variable -gt $total[$Num]){
$path = "The $path table is overloaded"
$path
echo 'sending mail'
}else{
echo "The $table table is not overloaded"
}
}
OverloadTable -Variable $PcaDos -Num 0 -Table PcaDos
OverloadTable -Variable $PcaMal -Num 1 -Table PcaMal
OverloadTable -Variable $PcaRdv -Num 2 -Table PcaRdv
OverloadTable -Variable $Pc2Tpt -Num 3 -Table Pc2Tpt
OverloadTable -Variable $Pc2Dti -Num 4 -Table Pc2Dti
OverloadTable -Variable $Pc2His -Num 5 -Table Pc2His
OverloadTable -Variable $PcaLigFact -Num 6 -Table PcaLigFact
此功能有效,但它為每個多載表發送一封電子郵件,而我希望它為每個多載表發送一封電子郵件。我試圖在函式中創建一個串列,但函式不保存以前的變數。我還嘗試將每個多載表的元素串列設定為 1,將其他表設定為 0,并將表的郵件發送到 1,但它也不起作用。我是函式的初學者。我知道這是可能的,但也許我沒有使用正確的方法
uj5u.com熱心網友回復:
這可能對你有用。可能是最少的編輯,但我確定不是最好的方法......
更正 $Table ,如@zett42 建議的那樣。
從函式中洗掉您的電子郵件執行。假設“echo 'sending mail'”是實際執行。
由于您在函式中表達 $Path,盡管您也可以使用 return $Path。洗掉電子郵件正文中不需要的回聲。然后用這樣的子運算式運算子包裝你的函式呼叫......
$(
OverloadTable -Variable $PcaDos -Num 0 -Table PcaDos
OverloadTable -Variable $PcaMal -Num 1 -Table PcaMal
OverloadTable -Variable $PcaRdv -Num 2 -Table PcaRdv
OverloadTable -Variable $Pc2Tpt -Num 3 -Table Pc2Tpt
OverloadTable -Variable $Pc2Dti -Num 4 -Table Pc2Dti
OverloadTable -Variable $Pc2His -Num 5 -Table Pc2His
OverloadTable -Variable $PcaLigFact -Num 6 -Table PcaLigFact
) | Foreach-Object { $EMAILBODY = $_ "`r`n" }
- ForEach-Object 部分將為您連接來自每個輸出 $Path 的函式的字串,并將添加換行符,因此如果您不想要,請洗掉。
- 使用 $EMAILBODY 執行您的電子郵件(函式外)。
子運算式運算子
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462212.html
標籤:电源外壳
