如何用Windows批处理将WMIC电池电量输出格式化为指定单行文本
解决WMIC电池电量输出格式化问题
我来帮你搞定这个Batch脚本的输出格式化问题!WMIC的默认输出确实有点棘手,自带多余空格和换行,咱们用几个Batch命令组合就能轻松调整格式。
这里有两种实用的实现方式,你可以按需选择:
方法一:批量脚本完整写法
把这段代码存成.bat文件运行即可:
@echo off for /f "skip=1 tokens=2" %%a in ('WMIC PATH Win32_Battery Get EstimatedChargeRemaining') do ( echo Battery Level is at %%a %% goto :exit ) :exit
代码细节解释:
@echo off:关闭命令本身的输出,让最终结果更干净for /f:专门用来解析命令输出的工具skip=1:跳过第一行的表头(也就是EstimatedChargeRemaining那行)tokens=2:提取输出里的第二部分数值(WMIC表头和数值之间有大量空格,tokens=2刚好能精准抓到电量数字)
goto :exit:因为WMIC可能会输出空行,拿到第一个有效数值就退出循环,避免重复输出%%a:循环变量,用来存储提取到的电量数值
方法二:CMD窗口单行命令
如果不想写脚本,直接在CMD窗口里运行这行命令也能得到相同效果:
for /f "skip=1 tokens=2" %a in ('WMIC PATH Win32_Battery Get EstimatedChargeRemaining') do @echo Battery Level is at %a %%
注意:CMD窗口里变量用
%a,如果写在Batch脚本里要改成%%a
最终效果
运行后你会得到整洁的输出:
Battery Level is at 83 %
这样就完美解决了原输出格式混乱的问题,不用管状态栏图标,直接拿到清晰的电量显示啦!
内容的提问来源于stack exchange,提问作者Suda




