Как объединить 2 выхода ошибок в один - PullRequest
0 голосов
/ 26 июня 2019

Ниже вводит 2 разные строки в мой журнал:

  1. "2019-06-25 16:08:23" "ОШИБКА:" "Копировать из C: \ Users \ Simon.Evans \ Documents \ Source Data \ LNAT \ Code_Maping.txt в I: \ Dev \ BI \ Проекты \ Powershell \ Test Area \ Source Data \ LNAT \ Code_Mapping.txt Failed "

  2. "2019-06-25 16:08:23" "ОШИБКА:" "Не удается найти путь" C: \ Users \ Simon.Evans \ Documents \ Source Data \ LNAT \ Code_Maping.txt ' потому что он не существует. "

Можно ли объединить 2 или использовать оба в одной строке / записи?

catch{
    $Error[0] | Write-Log -path $varfullpath                                                                            
    Write-log -Message "Copy from $sourceDirectory to $destinationDirectory Failed"  -Level Error -path $varfullpath     
} 

1 Ответ

0 голосов
/ 26 июня 2019

PowerShell сохраняет все ошибки в объекте $Error.
Каждая новая ошибка добавляется в начало списка.
Если список становится длиннее 256 ($MaximumErrorCount), последняя ошибка в списке исчезнет.
Это означает, что вы можете просто объединить первые две ошибки в списке (как прокомментировал Ранадип Датта):

($Error[1].ToString() + [System.Environment]::NewLine + $Error[0].ToString()) |
    Write-Log -path $varfullpath

(Обратите внимание, что это может произойти сбой, если обнаружена только 1 ошибка.)

...