PowerShell:
Запис до стандартної помилки
Як:
PowerShell спрощує процес запису в stderr за допомогою використання командлета Write-Error
або шляхом направлення виводу до методу $host.ui.WriteErrorLine()
. Однак, для безпосереднього перенаправлення stderr, вам може бути більше до вподоби використання методів .NET або перенаправлення дескриптора файлів, яке пропонує сам PowerShell.
Приклад 1: Використання Write-Error
для запису повідомлення про помилку в stderr.
Write-Error "Це повідомлення про помилку."
Вивід в stderr:
Write-Error: Це повідомлення про помилку.
Приклад 2: Використання $host.ui.WriteErrorLine()
для безпосереднього запису в stderr.
$host.ui.WriteErrorLine("Безпосередній запис в stderr.")
Вивід в stderr:
Безпосередній запис в stderr.
Приклад 3: Використання методів .NET для запису в stderr.
[Console]::Error.WriteLine("Використання методу .NET для stderr")
Вихідні дані цього методу:
Використання методу .NET для stderr
Приклад 4: Перенаправлення виводу помилок за допомогою дескриптора файлу 2>
.
Дескриптори файлів у PowerShell можуть перенаправляти різні потоки. Для stderr дескриптором є 2
. Ось приклад перенаправлення stderr до файлу під назвою error.log
під час виконання команди, що генерує помилку.
Get-Item NonExistentFile.txt 2> error.log
Цей приклад не продукує вивід у консолі, але створює файл error.log
у поточному каталозі, що містить повідомлення про помилку через спробу доступу до файлу, якого не існує.
На завершення, PowerShell забезпечує декілька методів для ефективного запису та управління виводом помилок, дозволяючи розробляти складні стратегії обробки помилок та ведення журналів у скриптах та додатках.