Да и да.
Вы можете использовать встроенный объект $host
, если все, что вам нужно, это изменить цвет текста. Однако вы не можете изменить само сообщение об ошибке - оно жестко закодировано.
Что вы можете сделать, это (а) подавить сообщения об ошибках и вместо этого (б) перехватить ошибки и отобразить свои собственные.
Выполните (a), установив $ErrorActionPreference = "SilentlyContinue"
- это не остановит ошибку, но подавит сообщения.
Выполнение (б) требует немного больше работы. По умолчанию большинство команд PowerShell не генерируют исключение, которое можно перехватить. Поэтому вам нужно научиться запускать команды и добавлять параметр -EA «Stop», чтобы сгенерировать исключение, которое можно отследить, если что-то пойдет не так. Сделав это, вы можете создать ловушку в оболочке, набрав:
trap {
# handle the error here
}
Вы можете поместить это в скрипт своего профиля, а не вводить его каждый раз. Внутри ловушки вы можете вывести любой текст ошибки с помощью командлета Write-Error.
Возможно, больше работы, чем вы хотели, но в основном вы будете делать то, что просили.