Яндекс.Метрика

    Ни о чём

    Полезные советы: звуковой сигнал в консоли Windows

    Мне приходится часто запускать довольно долгие операции из командной строки. Например Maven build или тесты. Естественно на «Матрицу» любоваться быстро надоедает, и переключаешься на какие-то другие задачи. Однако хочется чтобы тебе сразу сообщили что можно работать дальше. По умолчанию консоль Windows не предоставляет возможности назначить звуковой сигнал на завершение операции. Но ответ прост.
    Можно всего-лишь добавить к команде небольшое дополнение.
    Например в батнике который вызывает бильд, можно написать так:
    call mvn process-resources war:exploded & c:\programms\MPlayer\mplayer.exe "d:\programms\res\ok.wav" > nul
    Теперь после выполнения mvn — запустится mplayer и проиграет ok.wav, причем лишнего мусора в консоль не добавит(изза "> nul" ). Естественно можно воспользоваться любым другом плеером, или просто вызвать «ok.wav», тогда запустится проигрыватель по умолчанию, но мплеер мне нравится тем, что без гуя.

    Для удобства можно можно вызов звуков вынести в отдельные баты, и положить где-нибудь, где прописан path, тогда их можно вызывать и для других команд. Можно сделать два батника для успешного завершения и для ошибки соответственно.
    Итак:
    build.bat
    call mvn process-resources war:exploded && success.bat || fail.bat

    success.bat:
    @c:\programms\MPlayer\mplayer.exe "d:\programms\res\sucess.wav" > nul

    fail.bat:
    @c:\programms\MPlayer\mplayer.exe "d:\programms\res\error.wav" > nul

    Запустив build можно больше не переключатся в консоль, мы и так узнаем когда процесс закончится, и успешно или нет.

    Ну и в конце делаем !.bat с таким содержимым:
    @%* && success.bat || fail.bat

    Теперь можно запустить любую команду:
    ! copy очень_большой.файл, и услышать результат.

    Звуки можно взять стандартные из Windows, или любые другие. Мне нравятся эти TSCUpd00.wav, TSCErr01.wav.

    Windows XP Redirection

    На роль открыватель Америки не претендую, если кто-то знает более простой способ — поделитесь.