Воспроизвести звук (может быть WAV?) Из командной строки Windows

Как воспроизвести звук (CPU Beep или wav, неважно, что) с помощью Windows cmd?

14 ответов

Решение

Не в Windows сейчас, чтобы проверить это возможное решение, но попробуйте: "начать"

Я думаю, что он откроет файл WAV с соответствующей программой, что ваши окна имеют для файлов ". WAV".

И обратите внимание, это дикая догадка - кто-то с окнами может дать вам лучшее решение, если это не поможет

Вы можете сделать это изначально с 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 указывает на бел. Преимущество этого подхода в том, что он легче и более заметен при вводе в скрипт.

Чтобы запустить это в командном файле (снова, Vista или позже):

powershell -c echo `a

источник

echo ^G

куда ^G это CTRL + G или Alt + 7 на клавиатуре.

Установите VLC. Используйте следующую команду. Это начинается очень быстро. Это то, что я использовал в Windows 7 b/c. Wmplayer загружается так долго, и опция /close была удалена из wmplayer.

vlc.exe --play-and-exit audio.wav

Обходной путь (своего рода):

1) запустить аудио файл

2) дождаться окончания трека (в моем случае это 5 секунд) и закрыть медиаплеер

start wmplayer "C:\Windows\Media\Alarm10.wav" && timeout 5 && taskkill /im wmplayer.exe

(Пока старая ветка, люди найдут ее в поиске). Я вижу, кто-то уже рекомендовал VLC. Я использую его для воспроизведения звука в Windows без видимых параметров, используя параметры: "c:\Program Files (x86)\videolan\vlc\vlc.exe" --qt-start-minimized --play-and-exit "c:\Program Files (x86)\videolan\vlc\Windows Exclamation.wav"

Основным дополнением к предыдущему комментарию является --qt-start-minimized. Пути и символы кавычек приведены только для иллюстрации типичного использования. Я использовал это без изменений в XP, 7, 10; Я ожидаю, что Vista и 8.x тоже будут работать.

Очень легким решением является cmndPlayWAV.jar, который также работает в Linux и OS/X. Он имеет встроенный звук, если не указан параметр или вы можете указать полный путь к WAV-файлу. Кстати, всегда можно сделать звуковое сообщение.wav для использования с Windows Recorder.

Если обычный звуковой сигнал в порядке, отобразите символ со значением 7, так называемый символ звонка. Обратите внимание, однако, что звуковые сигналы могут быть отключены.

Если вы хотите что-то еще, вам придется запустить приложение, которое делает свое дело.

Вы можете написать простое консольное приложение, которое принимает звуковой файл (или звуковой идентификатор) в качестве аргумента и называется PlaySound

Я где-то нашел этот VB-скрипт, который может решить эту проблему (извиняюсь за автора, но я не знаю, кто это ;). Это немного сложно, но вы получите картину:

' найдите ссылку на сценарий VB здесь:
' http://www.csidata.com/custserv/onlinehelp/vbsdocs/VBSTOC.htm

set objvoice = createobject("sapi.spvoice")
set objfile = createobject("sapi.spfilestream.1")

если wscript.arguments.count = 0, то
    objfile.open "c:\windows\media\Windows Proximity Notification.wav"
еще
    wscript.echo wscript.arguments(0)
конец, если

objvoice.volume = 100
objfile.speakstream obj-файл

надеюсь это поможет, мне помогло на 100%...

Это сработало очень хорошо для меня. Все, что вам нужно сделать, это изменить C:\Windows\Media\Windows Critical Stop.wav на любое имя вашего файла.

      @echo off


title ERROR

::"setting up" error sound - creating vbs file to make sound
set "file=C:\Windows\Media\Windows Critical Stop.wav"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
  echo Sound.URL = "%file%"
  echo Sound.Controls.play
  echo do while Sound.currentmedia.duration = 0
  echo wscript.sleep 100
  echo loop
  echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
  
  ::playing sound
start /min sound.vbs

::wait 1 second for vbs to let go of file
ping n- 1 127.0.0.1>nul

::delete vbs file
del sound.vbs

На XP я делаю это

start /min mplay32 /play /close %WINDIR%\media\tada.wav

Это не идеально, но это действительно легко, и это работает.

Вы можете использовать fmedia для воспроизведения звукового файла из терминала Windows:

fmedia file.mp3

Эта команда начнет воспроизведение file.mp3 на переднем плане и выйдите после завершения воспроизведения файла.

Если вы хотите сделать это в фоновом режиме, добавьте --background переключиться на вашу команду:

fmedia file.wav --background

Эта команда запустит новый процесс в фоновом режиме и немедленно отсоединится от вашей консоли.

fmedia - портативное приложение (работает без установки) и потребляет очень мало системных ресурсов. Кроме того, его время запуска является мгновенным.

PS Используйте команду fmedia.exe --install добавить его в свой %PATH% переменная окружения, в противном случае вам нужно выполнить ее с полным путем, например D:\fmedia\fmedia.exe,

Я использую mplayer за это. Немного излишним, поскольку он может воспроизводить практически любой медиа-файл. Последние сборки Windows можно найти в spirton, начиная с 2013 года. Пример использования:

mplayer c:\windows\media\chimes.wav

Вы должны добавить mplayer.exe в вашу PATH (см. Что такое PATH и другие переменные среды и как я могу их установить или использовать?) Или Как я могу окончательно добавить запись в системную переменную PATH через командную строку?)

Другие вопросы по тегам