使用数组,有没有办法优化这个 PowerShell 函数?

Using arrays, is there a way to optimize this PowerShell function?

我正在编写脚本来对付呼叫中心骗子 在优化此脚本以使其尽可能短方面寻求帮助。 我有单独的消息,但是在创建数组时我必须手动输入每个变量,有没有办法将消息本身直接变成一个数组,这样我就可以遍历它们而不必一次输入一个?我希望能够添加更多消息,而不必一次将一个变量放入数组中。

感谢您的帮助,谢谢

function MsgBox{
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    
    $msg1 = "Are all scammers as dumb as you?"
    $msg2 = "Is the pay worth being this big of a loser?"
    $msg3 = "Do your parents know what you do for a living?"
    
    New-Object -TypeName System.Collections.ArrayList
    $arrlist = [System.Collections.Arraylist]@($msg1, $msg2, $msg3)
    
    Foreach ($item in $arrlist) { 
       [System.Windows.Forms.MessageBox]::Show($item , "Scambait" , 4 , 'Question')
    }
}

您可以用逗号分隔值声明一个包含所有消息的 array

$msgs = 'message 1', 'message 2', 'message 3'

或使用 array sub-expression operator:

$msgs = @(
    'message 1'
    'message 2'
    'message 3'
)

这将使您可以轻松地将新消息添加到数组中,其余代码将减少为一个循环:

foreach($msg in $msgs) {
    # your code using `$msg` here
}