удалить значения в массиве в powershell - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий код

function rte($hosts) {
    $conn = [System.Collections.ArrayList]@($hosts)
    $result = [System.Collections.ArrayList]@()   

    foreach($co in $conn)
    {
       $check = Test-Connection $co -Count 3 -ErrorAction SilentlyContinue
       $zugriffzeit = $check | select ResponseTime | Measure-Object ResponseTime -Average
       $avg = [system.math]::Round($zugriffzeit.Average)

        if($check -eq $null)
        {
            $pcre = Write-Output $co
            $pire = Write-Output 'False'
            $zure = 'Null'
        }
        else
        {
            $pcre = Write-Output $co
            $pire = Write-Output 'True'
            $zure = Write-Output "$avg ms"
            $zure = $zure.Replace(' ','')
        }
        #"$pcre $pire $zure"
        #[void] avoid the numeric position in the array where new record is stored.
        [void]$result.Add([PSCustomObject] @{PCName=$pcre;    PingResult=$pire;    Zugriffszeit=$zure} )
        # without this line there will be no column as we need.
        #$result | ForEach {[PSCustomObject]$_} | Format-Table -AutoSize

    }return $result
    **$result.Clear()**
}

Я хочу сделать это после выполнения l oop, я хочу удалить содержимое массива $result, что я делаю с $result.clear(). Однако это не сработает, если я вызову эту функцию в другой:

function mainfun($hosts) {
    #$hosts = [System.Collections.ArrayList]@()
    while($true){
        rte $hosts
        Start-Sleep -Seconds 5
    }
}

Я хочу иметь возможность вызывать функцию mainfun в PowerShell и хочу иметь массив $ result для удаления содержимое каждый раз после того, как он запускается один раз Как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...