Windows批处理/PowerShell读取文本变量实现驱动状态检测与自动重装
Win10 开机自动检测指定显卡驱动状态并异常重装实现方案
你可以根据自己的使用习惯选择批处理或PowerShell方案实现,以下是两种方案的完整代码:
方案1:批处理实现(兼容旧系统)
完整代码
@echo off setlocal enabledelayedexpansion :: 执行显卡状态查询,输出到临时文件 wmic path win32_VideoController WHERE VideoProcessor="替换为你实际的显卡VideoProcessor值" GET Status > C:\destination.txt set vidstatus= :: for/f默认跳过空行,skip=1跳过表头行,直接取状态值 for /F "skip=1 tokens=*" %%a in (C:\destination.txt) do ( set vidstatus=%%a goto :getstatus ) :getstatus :: 去除状态值前后的空白字符 set vidstatus=%vidstatus: =% :: 状态非OK则执行驱动安装 if not "%vidstatus%"=="OK" ( pnputil.exe -a c:\INF_Source_Dir\替换为实际的INF文件名.inf :: 如需安装后自动重启,取消注释下一行 :: shutdown /r /t 5 /f ) :: 清理临时文件 del C:\destination.txt endlocal
方案2:PowerShell实现(更简洁,推荐Win10使用)
无需生成中间临时文件,直接调用系统接口获取状态,判断逻辑更稳定:
完整代码
# 替换为你实际的显卡VideoProcessor名称 $targetVideoProcessor = "替换为你实际的显卡VideoProcessor值" # 查询指定显卡的状态信息 $videoController = Get-CimInstance -ClassName Win32_VideoController | Where-Object {$_.VideoProcessor -eq $targetVideoProcessor} # ConfigManagerErrorCode为0代表设备运行正常,非0则触发重装 if ($videoController.ConfigManagerErrorCode -ne 0) { # 执行驱动安装 pnputil.exe /add-driver "c:\INF_Source_Dir\替换为实际的INF文件名.inf" /install # 如需安装后自动重启,取消注释下一行 # Restart-Computer -Force -TimeoutSec 10 }
你可以先在CMD中执行
wmic path win32_VideoController get VideoProcessor获取你的显卡对应的VideoProcessor实际值,替换脚本中的占位符即可。
开机自启配置方法
以PowerShell脚本为例:
- 将写好的代码保存为
CheckAndInstallDriver.ps1,存放到C:\Scripts\目录下 - 按下
Win+R输入taskschd.msc打开任务计划程序 - 右侧点击「创建任务」,按以下规则配置:
- 常规页:任务名称填「显卡驱动自动修复」,勾选「使用最高权限运行」,系统配置选择Windows 10
- 触发器页:新建触发器,开始任务选择「启动时」,点击确定
- 操作页:新建操作,操作选「启动程序」,程序或脚本填
powershell.exe,添加参数填-ExecutionPolicy Bypass -File C:\Scripts\CheckAndInstallDriver.ps1 - 条件页:按需取消勾选「只有计算机使用交流电源时才启动此任务」
- 点击确定保存任务即可
内容的提问来源于stack exchange,提问作者Kreegah
相关产品推荐
相关产品推荐

