#powershell #error-handling
#powershell #обработка ошибок
Вопрос:
Я пытаюсь выяснить, как записать сообщение об ошибке для следующей строки кода PowerShell (например, если у пользователя, выполняющего скрипт, нет разрешения на чтение файла):
[IO.File]::ReadAllText("C:[test].txt")
С Get-Content
помощью я могу просто указать параметры ErrorAction
и ErrorVariable
. Похоже, это не относится к приведенной выше строке кода.
Спасибо!
Комментарии:
1. Обратите внимание, что с PowerShell v3 вы можете получить содержимое в виде строки с помощью:
Get-Content c:[test].txt -Raw
. Аргумент-Raw
был добавлен в версии v3. Без этого(Get-Content c:[test].txt).GetType().Name
будет возвращенObject[]
(считывает все строки файла в массив), а не одинString
.
Ответ №1:
Используйте блок try …catch
try{
[IO.File]::ReadAllText("C:blah")
}
catch{
#handle here. Catch specific exceptions as well.
}
Комментарии:
1. Спасибо! В итоге я использовал
$_.Exception.InnerException
в блоке catch.