2

Я хотел бы написать один пакетный файл, который переключает мое звуковое устройство по умолчанию, так как я использую только два.

Я уже использую nircmd для установки устройства по умолчанию, но я не нашел способа извлечь имя текущего устройства.

2 ответа2

0

Вы можете использовать SoundVolumeView, чтобы записать ваши аудиоустройства в файл CSV, а затем проанализировать его, используя cut и grep:

SoundVolumeView.exe /scomma dump.csv
cut dump.csv -d',' -f1,5|grep ',Render'|cut -d',' -f1

К сожалению, он не поддерживает стандартный вывод, поэтому необходимо выполнить запись в файл.

Столбец 1 содержит имя устройства, столбец 5 - столбец с именем "По умолчанию" и содержит либо "Render", либо "Capture" (или ничего). Если вы изменили порядок столбцов в графическом интерфейсе, вы должны изменить индексы. Лучше, чем фиксированные индексы, будет разбирать первую строку в поисках заголовков столбцов "Имя" и "По умолчанию".

Что касается cut и grep, я использую программы, включенные в Git для Windows. Если вы не хотите устанавливать Git, вы можете использовать gow. Они также включены в утилиты GnuWin и GNU для Win32, но они не обновлялись годами.

0

Я не нашел способ извлечь название текущего аудиоустройства.

Если вы не возражаете против использования PowerShell, попробуйте Get-DefaultAudioDevice из командлетов Powershell для работы с аудиоустройствами Windows:

Базовое управление аудиоустройствами командной строки из Powershell, включая консоль диспетчера пакетов Nuget.

Особенности: Установка громкости и переключение звука на устройстве воспроизведения по умолчанию. Получить список устройств и установить аудиоустройство по умолчанию.

...

Выставленные Командлеты

Get-DefaultAudioDevice
Get-AudioDeviceList
Set-DefaultAudioDevice [-Index] <Int>
Set-DefaultAudioDevice [-Name] <String>
Set-DefaultAudioDevice [-InputObject] <AudioDevice>
Set-DefaultAudioDeviceVolume -Volume <float>
Get-DefaultAudioDeviceVolume
Set-DefaultAudioDeviceMute <Bool>
Set-DefaultAudioDeviceMute #Toggle
Get-DefaultAudioDeviceMute
Write-DefaultAudioDeviceValue [-StreamValue]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .