Я пытаюсь gr asp переменные Write-Error
и $Error
automati c с примером кода ниже, который должен генерировать единственную ошибку:
function Test-Error
{
[CmdletBinding()]
param()
Write-Error -Message "Error message" -Category PermissionDenied -ErrorId SampleID
}
$Error.Clear()
$ErrorActionPreference = "Stop"
Test-Error
Согласно к документации:
$ Error Содержит массив объектов ошибок, которые представляют самые последние ошибки. Самая последняя ошибка - это первый объект ошибки в массиве $ Error [0].
ОК, так что давайте теперь посмотрим на содержимое ошибки:
$Error[0] | select -property *
Это напечатает ошибка, (я не вставляю ее здесь, потому что это не имеет отношения к вопросу)
Таким образом, согласно документации это ошибка, но похоже, что документы неверны:
$Error[1] | select -property *
Это также распечатает что-то!
Вопрос в том, как разделить одну ошибку на 2 части?
Разве просто $Error[0]
не должен содержать последнюю ошибку как Документы говорят?
Очевидно, я очистил переменную, поэтому в массиве должен быть только один элемент, а не 2.
оба элемента указывают на одну ошибку, но какова цель из 2 элементов массива для одной ошибки?
и если переменная $Error
содержит около 30 ошибок, как определить, какие 2 относятся к той же ошибке? потому что это означает 60 элементов на 30 ошибок!