|
|
@echo off
setlocal enabledelayedexpansion
:: ==============================
:: 高阶离线驱动安装器 v2.0
:: 功能:自动搜索所有本地硬盘中的 Windows DriverStore,批量安装驱动
:: 适用:WinPE、系统修复、批量部署
:: ==============================
:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
echo [!] 需要管理员权限。请以管理员身份运行。
pause
exit /b 1
)
:: 设置日志
set "LOG=%TEMP%\DriverInstall_%date:~0,4%%date:~5,2%%date:~8,2%.log"
echo [+] 日志文件: %LOG%
echo ============================ >> "%LOG%"
echo 驱动安装日志 - %date% %time% >> "%LOG%"
:: 获取所有本地固定硬盘盘符(DriveType=3)
set "DISKS="
for /f "skip=1 tokens=1" %%d in ('wmic logicaldisk where "DriveType=3" get Caption ^| find ":"') do (
set "DISKS=!DISKS! %%d"
)
if not defined DISKS (
echo [-] 未找到本地硬盘。
exit /b 1
)
echo [+] 检测到本地硬盘: %DISKS%
:: 遍历每个盘符
for %%D in (%DISKS%) do (
set "DRIVER_PATH=%%D:\Windows\System32\DriverStore\FileRepository"
if exist "!DRIVER_PATH!\" (
echo [+] 找到系统驱动仓库: !DRIVER_PATH!
echo [+] 正在安装 %%D 盘中的驱动...
echo --- 安装 %%D 盘驱动 --- >> "%LOG%"
:: 方法1:推荐!批量导入整个 FileRepository(最通用)
pnputil /add-driver "!DRIVER_PATH!\*.inf" /subdirs /install >> "%LOG%" 2>&1
:: 可选:若只想安装特定类驱动,可在此添加过滤(见下方注释)
echo [+] %%D 盘驱动安装完成。
)
)
echo.
echo [√] 所有检测到的驱动仓库已处理完毕。
echo 详细日志: %LOG%
echo.
pause |
|