Если порядок элементов (а не только значений) двух массивов имеет значение (т.е. оба массива должны иметь одинаковое количество элементов, значения элементов должны быть одинаковыми И порядок, в котором элементы должны отображаться одинаково), вы можете использовать
@(Compare-Object $array1 $array2 -SyncWindow 0).Length -eq 0
Если порядок, в котором элементы появляются в массивах, не имеет значения:
@(Compare-Object $array1 $array2).Length -eq 0
Редактировать
Учитывая ваш комментарий "если все значения в массиве в порядке, то вывести true, если одно из них не в порядке, то вывести false" , вы можете просто сделайте:
$array = 'OK','OK','OK','OK'
# test if all elements are 'OK'
($array | Where-Object { $_ -ne 'OK' }).Count -eq 0 # outputs True
Если один из элементов не «в порядке», как, например, с $array1
$array1 = 'OK','failed','OK','OK'
# test if all elements are 'OK'
($array1 | Where-Object { $_ -ne 'OK' }).Count -eq 0 # outputs False
Здесь «хитрость» заключается в том, что отдельные элементы массива в предложении Where-Object
. Это служит фильтром и пропускает все элементы, которые не в порядке. Наконец, мы просто используем свойство Count
результирующего массива и, если там ничего нет, счетчик будет равен 0, что означает True