Powershell函数,通过输入创建数组

时间:2013-11-09 09:51:06

标签: arrays function powershell

我对Powershell很陌生并且正在开发一个带有函数的小项目。 我要做的是创建一个带有2个参数的函数。 第一个参数($ Item1)决定数组的大小,第二个参数($ Item2)决定索引的值。

所以,如果我写:$ addToArray 10 5 我需要该函数来创建一个包含10个索引的数组,每个索引的值为5。第二个参数也必须将“text”作为值。

到目前为止,这是我的代码。

$testArray = @();

$indexSize = 0;

function addToArray($Item1, $Item2)

{

while ($indexSize -ne $Item1)

{

        $indexSize ++;    
    }

    Write-host "###";

    while ($Item2 -ne $indexSize)
    {
        $script:testArray += $Item2;
        $Item2 ++;
    }
}

感谢任何帮助。

亲切的问候 丹尼斯伯恩森

3 个答案:

答案 0 :(得分:1)

有很多方法可以实现这一目标,这是一个简单的方法(长版):

function addToArray($Item1, $Item2)
{
    $arr = New-Object Array[] $Item1

    for($i=0; $i -lt $arr.length; $i++)
    {
        $arr[$i]=$Item2
    }

    $arr
}

addToArray 10 5 

答案 1 :(得分:1)

这是另一种可能性:

function addToArray($Item1, $Item2)
 {
   @($Item2) * $Item1
 }

答案 2 :(得分:1)

另一个。

function addToArray($Item1, $Item2) {
    #Counts from 1 to your $item1 number, and for each time it outputs the $item2 value.
    (1..$Item1) | ForEach-Object {
        $Item2
    }
}

#Create array with 3 elements, all with value 2 and catch/save it in the $arr variable
$arr = addToArray 3 2

#Testing it (values under $arr is output)
$arr
2
2
2