windows11 一键切换音频输出设备
发布时间:2025-06-24 17:14:42 作者:北方职教升学中心 阅读量:629
windows11 一键切换音频输出设备。
- 前言。
- 命令行切换输出设备。
- 下载nircmd。
- 测试nircmd。
- 编写批处理脚本。
- 将bat文件固定到任务栏。
- 更换图标。
- 20240930更新。
- 弹出通知弹出窗口成功切换。
- 参考。
前言。
在家玩电脑的时候,经常需要切换声音输出设备,过去,win10切换声音输出似乎只需点击两次win11任务栏将wifi和声音放在一起,鼠标得到三次,然后切换设备,纯给我添堵,因此,我想看看如何使用命令行切换输出设备并最终实现一键切换。
命令行切换输出设备。
命令行切换输出设备
百度AI智能回答:
Windows,使用命令行工具nircmd切换音频输出设备。首先,您需要下载nircmd工具,它是一个小型的多功能命令行工具,可控制多种Windows操作。下载链接:http://www.nirsoft.net/utils/nircmd.html下载后,nircmd.exe放在你选择的目录中,例如C:\nircmd。以下是使用nircmd切换音频输出设备的命令:nircmd.exe setdefaultsounddevice "设备名称"将"设备名称"替换为您想要设置的默认音频输出设备名称。例如,如果您的音频输出设备名称为"Realtek Audio",您可以使用以下命令:nircmd.exe setdefaultsounddevice "Realtek Audio"确保nircmd.exe可以在你的环境变量PATH中找到,这样,您就可以从任何命令行的位置操作此命令。如果不添加环境变量,你需要给出一个完整的路径。如果不添加环境变量,你需要给出一个完整的路径。注意:Windows默认音频输出设备,音频流向不同的设备不是通过程序控制的。如果需要在程序级别上做到这一点它通常依赖于特定的音频库和API。
显然,下载命令行工具nircmd可以做到它还提供了nircmd官方网站http://www.nirsoft.net/utils/nircmd.html。
下载nircmd。
进入官网,下载与电脑相对应的版本,我是下载Downlodad的最后一个 NirCmd 64-bit。
下载一个zip压缩包,解压三个文件。打开。nircmd.exe。 ,点击。Copy To Windows Directory。
将exe文件放入C盘。打开。C:/Windows。可以看到。nircmd.exe。
已被复制。
测试nircmd。
按win+R打开操作输入cmd回车打开命令行工具,输入命令: nircmd.exe setdefaultsounddevice。
"PHL242M7ŘPHL242M7是您的输出设备名称(右键。屏幕左下角。小喇叭。,点击。声音设置。
打开设置查看)
这里有两个设备: 插在主板上。扬声器。 是。
耳机。 插入显卡。PHL242M7。 是。
音响。
输入命令测试#xff00c;成功切换。
再试一次切换扬声器:
没问题然后你就可以写了.bat文件。
编写批处理脚本。
参考:https://blog.csdn.net/qq_46387453/article/details/134012916。新建一个.txt文件,并将其后缀改为.bat,右键。编辑笔记本。
,写入代码,保存。耳机为。扬声器。,音响为。PHL242M7。
,修改需要的内容。
更新2024.09.30有更方便修改的代码。 @echo offchcp。65001。>nulsetlocal enabledelayedexpansion。set。tempfile。=%TEMP%。\。tempfile.txt。if。 exist。"%tempfile%"(。for。 /F %%i。in。(。%tempfile%。)。do。(。 set。currentdevice。=%%i。)。)。else。(。echo。 扬声器。>"%tempfile%"set。currentdevice。=扬声器。)。if。"!currentdevice!"=="扬声器"(。echo。 PHL242M7。>"%tempfile%"C:。\。Windows。\。 nircmd.exe nircmd.exe setdefaultsounddevice。"PHL242M7Ř)。else。(。echo。 扬声器。>"%tempfile%"C:。\。Windows。\。 nircmd.exe nircmd.exe setdefaultsounddevice。"扬声器")。endlocal。
exit。
踩一个小坑,打代码习惯等号两侧留空间#xff0c;导致无法操作。
保存后,双击运行,检查切换是否成功。
上面提到的哥哥,他用键盘宏来操作这个.bat文件,我的vgns99宏无法运行命令,所以我只能另辟新路看能不能把.将bat文件放在任务栏中常驻,点击即可操作。
将bat文件固定到任务栏。
百度AI智能回答说.bat文件通常运行在命令提示符下的脚本,任务栏通常用于固定应用程序,而不是脚本或命令。所以,如果你想实现它.bat文件固定到任务栏,可以创建一个快速的方法.bat文件并将此快捷方式固定在任务栏中。
这里又踩了一个小坑,百度AI智能回答直接右键.bat文件将快速指令发送到桌面,这样,这个快速指令就可以固定在任务栏,我试了一下,但还是不行。c;所以要用下面这个大佬的方法。
参考:https://www.cnblogs.com/y593216/p/18227797。
在桌面上创建一种新的快捷方式。
点击浏览选择上面创建的上面创建的内容.bat文件。
在路径前添加cmd /c。
cmd /c “批处理文件路径”:执行批处理文件后,窗口将自动关闭。
cmd /k “批处理文件路径”:批处理文件执行后,窗口不会自动关闭。
命名快捷方法,点击完成。
我得到了一个快捷的方法。右键这个快捷方式,点击。固定到任务栏。(在这里,我从任务栏取消了固定,因为它已经固定了。
)
对输出设备进行最终测试,一次改变一次。唯一美中不足的是图标有点丑hh,但是可以右键点击。属性。,选择。快捷方式。,下面的。更改图标。
,但是我懒得找好看的图标,就这样凑合用吧。
2024.09.28 更新如何更换图标。
更换图标。
老规矩先百度,说是要.ico格式图标文件,所以第一步先找图标。
我在阿里巴巴的iconfont上寻找图标(可以自己画一个有能力的,归根结底,矢量图不会粘贴),下载PNG格式的图片,找到自己喜欢的图标。
然后在线搜索ico工具,我找到了这个。先。选择文件。,上传刚下载的PNG图片,然后点击。开始转换。,转换结果出来后,点击右侧。
下载按钮。他会跳到这个界面,点击。文件链接。
,单独打开一个页面。右键直接在这里。图片另存为。,我建议存在。C:/Windows/System32。
里面,与原系统的一些图标放在一起,自己命名尽量起英文名字毕竟windows中文路径在某些情况下是无法识别的。
我试了几个图标,选了一个看起来比较顺眼的。直接右键。属性。,更改图标。,点击。浏览。找到刚刚保存的.ico图标然后点。确定。,再点。
应用。
可见图标已成功修改。再次。右键。,点击。显示更多选项。,从任务栏取消锁定。,再次。右键。重新。固定在任务栏中。
就可以了。
完美。
2024.09.30 更新切换通知的功能。
20240930更新。
弹出通知弹出窗口成功切换。
- nircmd有traybalon指令,带四个参数[Title] [Balloon Text] [Icon File] [Timeout],一个都不能少,还不能为空。[Title]。
- 通知标题。[Balloon Text]。
- 通知正文。[Icon File]。
- 通知图标.ico文件(例如:c:\icons\myicon.ico)或exe、dll文件和图标的下角标(例如: shell32.dll,-154)。[Timeout]。
弹出窗口后nircmd会关闭多久?#xff08;毫秒)
右键写在前面.bat文件编辑记事本,直接写在endlocal上。C:。\。Windows。\。 nircmd.exe trayballoon。"#xff1音频输出设备a;""PHL242M7Ř"%SystemRoot%\System32。\c。ustomTransparency.ico"
1。
[Title] 和 [Balloon Text] 随便写,[Icon File] 注意不要空,只能为.ico文件(奇怪的是,我的高清ico写在这里,糊得看不见,所以我换成了张纯透明的图片),最后一个 [Timeout] 如果很小为1或0,,[Icon File]不能加载,这是一个小bug,碰巧我不喜欢图标,所以我把它设定为1,如下效果如下a;
带图标(高糊)如下效果如下a;
完整的.bat文件如下:需要代码的朋友会 “扬声器” 和 “PHL242M7 用你的替换。耳机。耳机。和。
音响。 名称。@echo offchcp。65001。>nulsetlocal enabledelayedexpansion@REM 耳机。set。headset。=扬声器@REM 音响。set。audio。=PHL242M7。set。tempfile。=%TEMP%。\。tempfile.txt。 if。exist。"%tempfile%"(。 for。/F %%i。in。(。%tempfile%。)。do。 (。set。currentdevice。=%%i。)。)。else。(。 echo。%headset%。>"%tempfile%"set。currentdevice。=%headset%。)。if。"!currentdevice!"=="%headset%"(。set。nextDevice。=%audio%。)。else。(。set。nextDevice。=%headset%。)。 echo。%nextDevice%。>"%tempfile%"C:。\。Windows。 \。nircmd.exe nircmd.exe setdefaultsounddevice。"%nextDevice%"C:。\。Windows。 \。nircmd.exe trayballoon。"#xff1音频输出设备a;""%nextDevice%""shell32.dll,-154"1。
endlocal。
- exit。
- 参考。