Вы можете сделать это изначально с PowerShell. PowerShell входит в состав Windows Vista и более поздних версий и может быть загружен с веб-сайта Microsoft для более старых версий.
Волновые файлы
PowerShell можно использовать для загрузки System.Media.SoundPlayer
класса .NET, который можно использовать для воспроизведения волнового файла.
(New-Object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").Play();
Если вы хотите, вы можете запустить это из обычной командной строки:
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();
(обратите внимание, что PlaySync
используется во втором примере, поскольку стандартное асинхронное воспроизведение будет прервано закрытием процесса PowerShell при запуске таким образом)
И если вы хотите воспроизвести только первую, скажем, 5 секунд звука:
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").Play(); Start-Sleep -s 5; Exit;
гудок
Звуковой сигнал может быть легко выполнен в обычной командной строке с помощью echo ^G
(где ^G
представляет BEL, символ ASCII 7, вставленный с Ctrl+ G), как описано в других ответах. В целях полноты, вот метод PowerShell:
echo ^G
Да, это так же, как cmd
тот. echo
в PowerShell есть псевдоним (то есть означает то же самое) Write-Host
, который отображает что-то на экране (или вызывает звук уведомления Windows в случае BEL
).
Альтернативный метод в PowerShell - использовать escape-последовательность для BEL, а не вставлять буквенный символ BEL с помощью Ctrl+ G:
echo `a
`
является escape-символом PowerShell, который изменяет значение символа после него. Побег a
указывает на BEL. Преимущество этого подхода в том, что он легче и заметнее при вводе в скрипт.
Чтобы запустить это в командном файле (снова, Vista или позже):
powershell -c echo `a