win10上如何通过cmd提取当前默认音频设备的名称?

win10上如何通过cmd提取当前默认音频设备的名称?

我想编写一个批处理文件来切换我的默认声音设备,因为我只使用两个。

我已经在使用 nircmd 设置默认设备,但我还没有找到提取当前设备名称的方法。

答案1

我还没有找到提取当前音频设备名称的方法。

如果你不介意使用 PowerShell,那么尝试Get-DefaultAudioDevice一下用于操作 Windows 音频设备的 Powershell Cmdlet

Powershell 的基本命令行音频设备控制,包括 Nuget 包管理器控制台。

功能:设置音量并在默认播放设备上切换静音。获取设备列表并设置默认音频设备。

...

公开的 Cmdlet

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]

答案2

您可以使用音量视图将音频设备转储到 CSV 文件中,然后使用 cut 和 grep 对其进行解析:

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

不幸的是,它似乎不支持标准输出,因此需要写入文件。

第 1 列包含设备名称,第 5 列是名为“Default”的列,包含“Render”或“Capture”(或不包含任何内容)。如果您更改了 GUI 中的列顺序,则必须更改索引。比固定索引更好的方法是解析第一行以查找列标题“Name”和“Default”。

至于 cut 和 grep,我使用包含在适用于 Windows 的 Git。如果你不想安装 Git,你可以使用戈夫。它们也包括在图形化界面适用于 Win32 的 GNU 实用程序,但这些已经好几年没有更新了。

答案3

SoundVolumeView.exe /scomma exit.csv
for /f "tokens=4 delims=, skip=1" %%a in (exit) do echo %%a

答案4

"%CD%\SOUNDVOLUMEVIEW\SoundVolumeView.exe" /scomma "%CD%\SOUNDVOLUMEVIEW\Audio.txt"
for /f "tokens=1 delims=," %%d in ('type "%EXTRA%\SOUNDVOLUMEVIEW\Audio.txt" ^| find "Capture,Capture"') do set "INPUTDEVICE=%%d"
echo Default audio input device is: "%INPUTDEVICE%"
for /f "tokens=1 delims=," %%a in ('type "%CD%\SOUNDVOLUMEVIEW\Audio.txt" ^| find "Render,Render"') do set "OUTPUTDEVICE=%%a"
echo Default audio output device is: "%OUTPUTDEVICE%"

将此脚本复制到 SoundVolumeView 目录内的批处理文件中。它将当前音频输入和输出设备分别放入变量“%INPUTDEVICE%”和“%OUTPUTDEVICE%”中。

我希望这有帮助!

相关内容