В одной системе возникла необходимость выводить на экран журнал работы сервера приложений, и сделать так, чтобы при появлении определённой ошибки раздавался звуковой сигнал. С первой задачей неплохо справляется Far Manager. Система работала на сервере Windows, и журнал, открытый на просмотр с сетевого диска, постоянно обновляется. Однако, пищать Far не умеет.
В Powershell для постоянного вывода содержимого файла на экран можно использовать команду Get-Content:
Эта команда с ключом -wait действует аналогично юниксовому tail -f, только выводит на экран весь файл, и нельзя указать количество последних строк для вывода.
Предположим, что нас интересуют события с идентификатором WSVR060*, и пищать нужно только при появлении события WSVR0605W.
Чтобы система пищала при возникновении в логе ошибки, можно воспользоваться двумя способами:
Способ 1. Вывод специального символа `a:
При этом выдаётся стандартный сигнал, длительность и тон которого фиксированы.
Способ 2. Инструкция [console]::Beep выдаёт звуковой сигнал заданной длительности (в миллисекундах) и частоты (в Гц):
Так при желании можно сделать, чтобы разные ошибки пищали на разный лад.
А как обстоят дела на Windows 7 ?
Попробовал эту конструкцию и у меня все равно звук выводится в колонки, а не на спикер.
У меня тоже звук выводился в колонки, и происходило это как раз на Windows 7.
Меня на тот момент это полностью устраивало.