查看Windows 笔记本电池状态信息

Win+X 可以调出快捷菜单——在PowerShell中执行——以管理员权限执行

将下面命令复制到命令行中——回车执行

$HTML=[System.Environment]::GetFolderPath('Desktop')+"\"+(Get-Date -Format 'yyyy-MM-dd')+"-电池报告.html";POWERCFG /BATTERYREPORT /OUTPUT "$HTML";$TF=Get-Content "$HTML" -Raw;$Replacements=@{ "Current estimate of battery life"="当前电池续航估算";"since OS install"="自操作系统安装以来";"Charge capacity history of the system's batteries"="系统电池充电容量变化记录";"Information about each currently installed battery"="当前安装电池的详细信息";"Battery drains over the last 3 days"="过去 3 天的电池消耗记录";"History of system usage on AC and battery"="电池 & 交流电源使用历史";"based on all observed drains"="基于所有观察到的放电情况";"based on observed drains"="基于观察到的放电情况";"Battery life estimates"="电池续航时间估算";"Power states over the last 7 days"="过去 7 天的电源状态记录";"Battery drains over the last 7 days"="过去 7 天的电池耗电记录";"AT FULL CHARGE"="基于当前满充容量";"AT DESIGN CAPACITY"="基于设计容量";"Battery report"="电池使用情况报告";"COMPUTER NAME"="计算机名称";"SYSTEM PRODUCT NAME"="系统型号";"OS BUILD"="操作系统版本";"PLATFORM ROLE"="设备类型";"Installed batteries"="已安装电池";"MANUFACTURER"="电池制造商";"Primary"="主电池";"LIon"="锂离子";"SERIAL NUMBER"="序列号";"CHEMISTRY"="电池类型";"DESIGN CAPACITY"="设计容量";"FULL CHARGE CAPACITY"="当前满充容量";"CYCLE COUNT"="充放电循环次数";"Recent usage"="最近使用情况";"START TIME"="开始时间";"SOURCE"="电源来源";"CAPACITY REMAINING"="剩余电量";"Battery usage"="电池使用情况";"DURATION"="持续时间";"ENERGY DRAINED"="消耗能量";"Usage history"="使用历史";"PERIOD"="时间段";"BATTERY DURATION"="电池使用时长";"AC DURATION"="外接电源使用时长";"Battery capacity history"="电池容量历史";"Supported"="支持";"Not supported"="不支持";"Suspended"="休眠";"Active"="正在使用";"Connected standby"="连接待机";"Unspecified"="未指定";"Mobile"="移动设备";"Desktop"="台式设备";"Workstation"="工作站";"Report generated"="报告生成于";"STATE"="系统状态";"REPORT TIME"="报告时间";};foreach($K in $Replacements.Keys){$TF=$TF -replace [regex]::Escape($K),$Replacements[$K]};Set-Content "$HTML" $TF -Encoding UTF8;Start-Process "$HTML"

当显示“按 Enter 键继续...:”时就表示已经生成了电池报告(简体中文),您可以在桌面上找到并打开生成的报告——<当前日期>-电池记录.html

 

对于高级用户

生成报告的主体命令是:

POWERCFG /BATTERYREPORT

加入”/?“参数并执行可以查看命令帮助:

POWERCFG /BATTERYREPORT /?

这是一个优化后的完美代码(一句话代码由于循环嵌套的原因有几个简单单词不能加入到循环中完全翻译)

# 1. 设置保存路径
$Desktop = [Environment]::GetFolderPath('Desktop')
$HTML = Join-Path $Desktop ((Get-Date -Format 'yyyy-MM-dd') + "-电池报告.html")

Write-Host "正在生成电池报告,请稍候……" 

# 2. 生成英文报告
powercfg /batteryreport /output $HTML

# 3. 读取 HTML 内容
$Content = Get-Content $HTML -Raw

# 4. 定义翻译映射(保留原有长字段,移除单独的AT/NAME,后续单独处理)
$Replacements = [ordered]@{
	"Current estimate of battery life"="当前电池续航估算";
	"since OS install"="自操作系统安装以来";
	"Charge capacity history of the system's batteries"="系统电池充电容量变化记录";
	"Information about each currently installed battery"="当前安装电池的详细信息";
	"Battery drains over the last 3 days"="过去 3 天的电池消耗记录";
	"History of system usage on AC and battery"="电池 & 交流电源使用历史";
	"based on all observed drains"="基于所有观察到的放电情况";
	"based on observed drains"="基于观察到的放电情况";
	"Battery life estimates"="电池续航时间估算";
	"Power states over the last 7 days"="过去 7 天的电源状态记录";
	"Battery drains over the last 7 days"="过去 7 天的电池耗电记录";
	"AT FULL CHARGE"="基于 当前满充容量";
	"AT DESIGN CAPACITY"="基于 设计容量";
	"Battery report"="电池使用情况报告";
	"COMPUTER NAME"="计算机名称";
	"SYSTEM PRODUCT NAME"="系统型号";
	"OS BUILD"="操作系统版本";
	"PLATFORM ROLE"="设备类型";
	"Installed batteries"="已安装电池";
	"MANUFACTURER"="电池制造商";
	"SERIAL NUMBER"="序列号";
	"CHEMISTRY"="电池类型";
	"Primary"="主电池";
	"LIon"="锂离子";
	"DESIGN CAPACITY"="设计容量";
	"FULL CHARGE CAPACITY"="当前满充容量";
	"CYCLE COUNT"="充放电循环次数";
	"Recent usage"="最近使用情况";
	"START TIME"="开始时间";
	"SOURCE"="电源来源";
	"CAPACITY REMAINING"="剩余电量";
	"Battery usage"="电池使用情况";
	"DURATION"="持续时间";
	"ENERGY DRAINED"="消耗能量";
	"Usage history"="使用历史";
	"PERIOD"="时间段";
	"BATTERY DURATION"="电池使用时长";
	"AC DURATION"="外接电源使用时长";
	"Battery capacity history"="电池容量历史";
	"Supported"="支持";
	"Not supported"="不支持";
	"Suspended"="休眠";
	"Active"="正在使用";
	"Connected standby"="连接待机";
	"Unspecified"="未指定";
	"Mobile"="移动设备";
	"Desktop"="台式设备";
	"Workstation"="工作站";
	"Report generated"="报告生成于";
	"STATE"="系统状态";
	"REPORT TIME"="报告时间";
}

# 5. 第一步:批量替换长字段(优先处理包含短字段的长字段)
foreach ($Key in $Replacements.Keys) {
    $Content = $Content -replace [regex]::Escape($Key), $Replacements[$Key]
}

# ========== 新增部分:第二步:单独精准替换AT、NAME、AC ==========
# 使用正则\b(单词边界)确保只替换独立的AT/NAME,不影响其他字段
# 替换独立的AT(避免替换到已处理的AT DESIGN CAPACITY等)
$Content = $Content -replace "\bAT\b", "基于 "
# 替换独立的NAME(避免替换到已处理的COMPUTER NAME等)
$Content = $Content -replace "\bNAME\b", "名称"
# 替换独立的BATTERY(避免替换到已处理的BATTERY等)
$Content = $Content -replace "\bBATTERY\b", "电池"
$Content = $Content -replace "\bAC\b", "交流电 "

# 6. 保存回 HTML 文件,确保 UTF-8 编码
Set-Content -Path $HTML -Value $Content -Encoding UTF8

# 7. 输出报告保存路径
Write-Host "`n电池报告已成功生成:" -ForegroundColor Green
Write-Host $HTML -ForegroundColor Yellow

# 8. 回车后-自动打开报告
Start-Process $HTML

 

posted @ 2024-06-28 13:00  Magiclala  阅读(380)  评论(0)    收藏  举报