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