Воспроизвести звук в PS так же просто, как сделать это ...
# this
"`a"
# or this basic tone
[console]::beep(1000, 500)
Измените значение первого числа, чтобы изменить высоту тона (ничего ниже 190 или выше 8500 не будет слышно), и измените значение второго числа, чтобы изменить длительность:
# Or this
[System.Media.SystemSounds]::Beep.Play()
Затем свяжите это с выходным кодом. Для внешнего exe-файла в PS вы должны написать код для получения выходных данных с помощью перенаправления PS.
Используйте любой инструмент, который вы выберете, чтобы создать звук, который вы хотите воспроизвести. Конечно, это должно быть на всех системах, на которых вы планируете запускать свой код.
1..3 | %{
'Play a sound'
[console]::beep(1000, 500)
}
Обновление для ОП
Не волнуйтесь.
Что касается (1) - вам просто нужно добавить звуковую линию до или после ожидаемого вывода текста, как в этом показанном примере цикла.
Что касается (2), это далеко не так гибко. Вы можете использовать CRTL+G в файле .bat/.cmd и вызывать его до или после ожидаемой строки вывода.
Тем не менее, опять же, вам придется кодировать, чтобы перехватить весь вывод, который вы ищете. Воспроизведение файлов WAV означает вызов медиаплеера в вашем коде, особенно для cmd.exe.
# PowerShell playing a wav file
$PlayWav=New-Object System.Media.SoundPlayer
$PlayWav.SoundLocation='C:\Foo\Soundfile.wav'
$PlayWav.playsync()
# CMD playing a wav file
start 'C:\Foo\Soundfile.wav'
Вот реальная проблема с воспроизведением файлов .wav или чем-то, что находится за пределами обычных звуковых сигналов консоли, медиаплеер будет вызываться каждый раз и должен отображаться для воспроизведения файла и должен быть закрыт. Не очень автоматизированная вещь ..
Итак, ИМХО за то, что вы после придерживаетесь родной консоли, звучит.