电脑维修 笔记本维修 手机维修 打印机维修 IT外包
24小时服务电话:0731-84688748  18229718750
地址:长沙市天心区青园街道友谊社区友谊小区A3栋15号

服务区域:湖南省政府方圆5公里内(友谊社区 青园小区 阳光嘉园 天一康园 湘超景园 国际公寓 HOPSCA写字楼 豪布斯卡 天城·泰祥苑 国检园 梦网景园 石人村金石·蓉园安置小区 鑫隆家园 湘诚嘉园 童话里 七星车城 华铁佳苑 巢之恋 鑫远杰座 鑫远华城 满庭芳 宽域 鑫天山水洲城 星语林名园 青园街道进湾子社区 白沙世纪佳园 长沙欧洲城 长沙奥林匹克花园 高升安置小区 湘府名邸 嘉尚君远 富景园 鑫源公寓 岳泰理想城 等等...)

驱动导出 重装系统前导出当前系统驱动 - 全文内容:

显示技术博客列表

驱动导出 重装系统前导出当前系统驱动

超短链接


dism内置命令两种方法导出驱动对比:

 
场景命令示例适用情况
当前系统正常dism /online /export-driver /destination:D:\Backup 系统能正常启动和登录
当前系统损坏dism /Image:D:\ /export-driver /destination:E:\Backup 系统蓝屏、无法启动


驱动导出到D盘.bat 脚本内容:

@echo off
REM utf8编码设置
REM chcp 65001 >nul
REM GB2312编码设置
chcp 936 >nul
title 驱动导出工具 - 支持正常系统与WinPE

REM 声明变量
set "DRV_TOOL=驱动导出工具"
set "NORMAL_MODE=0"
set "DEST_PATH="
set "OFFLINE_DRIVE="
set "DEFAULT_PATH=D:\DriversBackup"

:begin
cls
echo ===============================================
echo        %DRV_TOOL% v1.0
echo ===============================================
echo.

REM 判断是否为WinPE环境(多种检测方法)
set "IS_PE=0"

REM 方法1:检查是否存在WinPE专用文件
if exist "%SystemRoot%\System32\winpe.exe" set "IS_PE=1"
if exist "%SystemRoot%\System32\startnet.cmd" set "IS_PE=1"

REM 方法2:检查注册表项(PE环境通常没有完整注册表)
reg query "HKLM\SYSTEM\CurrentControlSet\Control" | findstr /i "WinPE" >nul 2>nul
if %errorlevel%==0 set "IS_PE=1"

REM 方法3:检查系统盘盘符(正常系统一般在C:,且不能是X:或RAMDisk)
if /i "%SystemDrive%"=="X:" set "IS_PE=1"

if "%IS_PE%"=="1" (
    echo [环境检测] 当前运行在 WinPE 环境中。
    echo -----------------------------------------------
    set "NORMAL_MODE=0"
) else (
    echo [环境检测] 当前运行在 正常Windows 环境中。
    echo -----------------------------------------------
    set "NORMAL_MODE=1"
)

echo.

REM 询问用户导出模式
:select_mode
echo 请选择驱动导出模式:
echo.
if "%NORMAL_MODE%"=="1" (
    echo   [1] 在线导出 - 备份当前系统的所有第三方驱动 (推荐)
    echo.
)
echo   [2] 离线导出 - 备份已损坏/无法启动系统的驱动(需要进入WinPE)
echo   [3] 退出
echo.
set /p "choice=请输入数字 (1/2/3): "

if "%choice%"=="1" (
    if "%NORMAL_MODE%"=="1" (
        call :export_online
    ) else (
        echo 当前环境不支持在线导出!请重新选择。
        ping -n 2 127.0.0.1 >nul
        goto select_mode
    )
) else if "%choice%"=="2" (
    call :export_offline
) else if "%choice%"=="3" (
    exit /b
) else (
    echo 输入无效,请重新选择。
    ping -n 2 127.0.0.1 >nul
    goto select_mode
)

pause
goto begin

REM ========== 在线导出函数 ==========
:export_online
cls
echo ===============================================
echo           在线驱动导出模式
echo ===============================================
echo 说明:将备份当前运行系统的所有第三方驱动。
echo.
echo 默认路径: %DEFAULT_PATH%
echo 提示:直接回车将使用默认路径,或输入自定义路径
echo.

:get_dest_online
set "DEST_PATH="
set /p "DEST_PATH=请输入备份保存路径 [%DEFAULT_PATH%]: "

REM 如果用户直接回车,使用默认路径
if "%DEST_PATH%"=="" (
    set "DEST_PATH=%DEFAULT_PATH%"
    echo 已使用默认路径: %DEST_PATH%
)

REM 去除路径中的首尾引号
set "DEST_PATH=%DEST_PATH:"=%"

REM 创建目标文件夹(如果不存在)
if not exist "%DEST_PATH%" (
    echo 目标路径不存在,正在创建...
    mkdir "%DEST_PATH%" 2>nul
    if errorlevel 1 (
        echo 创建失败!请确认路径有效或有足够权限。
        echo.
        goto get_dest_online
    )
)

echo.
echo 正在导出驱动,请稍候...
echo -----------------------------------------------

REM 执行在线导出命令
dism /online /export-driver /destination:"%DEST_PATH%"

if %errorlevel%==0 (
    echo.
    echo ========== 导出成功! ==========
    echo 驱动已保存至: %DEST_PATH%
) else (
    echo.
    echo ========== 导出失败! ==========
    echo 可能原因:
    echo 1. 权限不足(请以管理员身份运行此脚本)
    echo 2. 目标路径不可写或磁盘空间不足
    echo 3. 系统组件异常
)

echo.
echo 按任意键返回主菜单...
pause >nul
goto begin

REM ========== 离线导出函数 ==========
:export_offline
cls
echo ===============================================
echo           离线驱动导出模式
echo ===============================================
echo 说明:
echo 1. 适用于已损坏/无法启动的系统(当前在WinPE中运行)
echo 2. 需要知道目标系统安装盘的位置
echo 3. 建议先确认盘符(可打开资源管理器查看)
echo.

REM 列出当前可用盘符
echo [当前可用盘符列表]
echo -----------------------------------------------
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%i:\ (
        if exist %%i:\Windows\System32 (
            echo   %%i: - 可能包含Windows系统
        ) else if exist %%i:\ (
            echo   %%i: - 普通分区
        )
    )
)
echo -----------------------------------------------
echo 提示:损坏的系统分区通常仍能看到 Windows 文件夹
echo.

:get_offline_drive
set /p "OFFLINE_DRIVE=请输入目标系统安装盘盘符 (只输入字母,如 D): "
set "OFFLINE_DRIVE=%OFFLINE_DRIVE:~0,1%"

REM 验证输入是否合法
if "%OFFLINE_DRIVE%"=="" (
    echo 盘符不能为空!
    goto get_offline_drive
)

REM 检查盘符是否为字母
echo %OFFLINE_DRIVE%| findstr /r "^[A-Za-z]$" >nul
if errorlevel 1 (
    echo 请输入单个字母 (A-Z)!
    goto get_offline_drive
)

REM 转为大写
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if /i "%OFFLINE_DRIVE%"=="%%i" set "OFFLINE_DRIVE=%%i"
)

REM 检查目标盘符是否存在
if not exist %OFFLINE_DRIVE%:\ (
    echo 盘符 %OFFLINE_DRIVE%: 不存在!请重新输入。
    goto get_offline_drive
)

REM 检查是否存在系统必要的标志(可选,但不强制)
if not exist %OFFLINE_DRIVE%:\Windows\System32\config\SOFTWARE (
    echo 警告:%OFFLINE_DRIVE%: 可能不包含完整的Windows系统注册表
    echo 如果确认这是目标系统盘,请按 Y 继续,否则按 N 重新输入。
    set /p "confirm=是否继续? (Y/N): "
    if /i not "!confirm!"=="Y" (
        goto get_offline_drive
    )
)

echo.
echo 默认保存路径: %DEFAULT_PATH%
echo 提示:直接回车将使用默认路径,或输入自定义路径
echo.

:get_dest_offline
set "DEST_PATH="
set /p "DEST_PATH=请输入备份保存路径 [%DEFAULT_PATH%]: "

REM 如果用户直接回车,使用默认路径
if "%DEST_PATH%"=="" (
    set "DEST_PATH=%DEFAULT_PATH%"
    echo 已使用默认路径: %DEST_PATH%
)

set "DEST_PATH=%DEST_PATH:"=%"

REM 创建目标文件夹
if not exist "%DEST_PATH%" (
    echo 目标路径不存在,正在创建...
    mkdir "%DEST_PATH%" 2>nul
    if errorlevel 1 (
        echo 创建失败!请确认路径有效。
        echo.
        goto get_dest_offline
    )
)

echo.
echo 正在导出离线系统驱动...
echo 目标系统盘符: %OFFLINE_DRIVE%:
echo 保存路径: %DEST_PATH%
echo -----------------------------------------------

REM 执行离线导出命令(注意:Dism 需要支持离线处理)
dism /image:%OFFLINE_DRIVE%:\ /export-driver /destination:"%DEST_PATH%"

if %errorlevel%==0 (
    echo.
    echo ========== 导出成功! ==========
    echo 驱动已从系统盘 %OFFLINE_DRIVE%: 导出至 %DEST_PATH%
) else (
    echo.
    echo ========== 导出失败! ==========
    echo 可能原因:
    echo 1. 目标路径权限不足
    echo 2. 指定盘符不是有效的Windows安装
    echo 3. Dism 服务未正确初始化
    echo 4. 当前PE环境可能缺少 Dism 组件
)

echo.
echo 按任意键返回主菜单...
pause >nul
exit






@echo off
REM utf8编码设置
REM chcp 65001 >nul
REM GB2312编码设置
chcp 936 >nul
title 驱动导出工具 - 支持正常系统与WinPE

REM 声明变量
set "DRV_TOOL=驱动导出工具"
set "NORMAL_MODE=0"
set "DEST_PATH="
set "OFFLINE_DRIVE="
set "DEFAULT_PATH=D:\DriversBackup"

:begin
cls
echo ===============================================
echo        %DRV_TOOL% v1.0
echo ===============================================
echo.

REM 判断是否为WinPE环境(多种检测方法)
set "IS_PE=0"

REM 方法1:检查是否存在WinPE专用文件
if exist "%SystemRoot%\System32\winpe.exe" set "IS_PE=1"
if exist "%SystemRoot%\System32\startnet.cmd" set "IS_PE=1"

REM 方法2:检查注册表项(PE环境通常没有完整注册表)
reg query "HKLM\SYSTEM\CurrentControlSet\Control" | findstr /i "WinPE" >nul 2>nul
if %errorlevel%==0 set "IS_PE=1"

REM 方法3:检查系统盘盘符(正常系统一般在C:,且不能是X:或RAMDisk)
if /i "%SystemDrive%"=="X:" set "IS_PE=1"

if "%IS_PE%"=="1" (
    echo [环境检测] 当前运行在 WinPE 环境中。
    echo -----------------------------------------------
    set "NORMAL_MODE=0"
) else (
    echo [环境检测] 当前运行在 正常Windows 环境中。
    echo -----------------------------------------------
    set "NORMAL_MODE=1"
)

echo.

REM 询问用户导出模式
:select_mode
echo 请选择驱动导出模式:
echo.
if "%NORMAL_MODE%"=="1" (
    echo   [1] 在线导出 - 备份当前系统的所有第三方驱动 (推荐)
    echo.
)
echo   [2] 离线导出 - 备份已损坏/无法启动系统的驱动(需要进入WinPE)
echo   [3] 退出
echo.
set /p "choice=请输入数字 (1/2/3): "

if "%choice%"=="1" (
    if "%NORMAL_MODE%"=="1" (
        call :export_online
    ) else (
        echo 当前环境不支持在线导出!请重新选择。
        ping -n 2 127.0.0.1 >nul
        goto select_mode
    )
) else if "%choice%"=="2" (
    call :export_offline
) else if "%choice%"=="3" (
    exit /b
) else (
    echo 输入无效,请重新选择。
    ping -n 2 127.0.0.1 >nul
    goto select_mode
)

pause
goto begin

REM ========== 在线导出函数 ==========
:export_online
cls
echo ===============================================
echo           在线驱动导出模式
echo ===============================================
echo 说明:将备份当前运行系统的所有第三方驱动。
echo.
echo 默认路径: %DEFAULT_PATH%
echo 提示:直接回车将使用默认路径,或输入自定义路径
echo.

:get_dest_online
set "DEST_PATH="
set /p "DEST_PATH=请输入备份保存路径 [%DEFAULT_PATH%]: "

REM 如果用户直接回车,使用默认路径
if "%DEST_PATH%"=="" (
    set "DEST_PATH=%DEFAULT_PATH%"
    echo 已使用默认路径: %DEST_PATH%
)

REM 去除路径中的首尾引号
set "DEST_PATH=%DEST_PATH:"=%"

REM 创建目标文件夹(如果不存在)
if not exist "%DEST_PATH%" (
    echo 目标路径不存在,正在创建...
    mkdir "%DEST_PATH%" 2>nul
    if errorlevel 1 (
        echo 创建失败!请确认路径有效或有足够权限。
        echo.
        goto get_dest_online
    )
)

echo.
echo 正在导出驱动,请稍候...
echo -----------------------------------------------

REM 执行在线导出命令
dism /online /export-driver /destination:"%DEST_PATH%"

if %errorlevel%==0 (
    echo.
    echo ========== 导出成功! ==========
    echo 驱动已保存至: %DEST_PATH%
) else (
    echo.
    echo ========== 导出失败! ==========
    echo 可能原因:
    echo 1. 权限不足(请以管理员身份运行此脚本)
    echo 2. 目标路径不可写或磁盘空间不足
    echo 3. 系统组件异常
)

echo.
echo 按任意键返回主菜单...
pause >nul
goto begin

REM ========== 离线导出函数 ==========
:export_offline
cls
echo ===============================================
echo           离线驱动导出模式
echo ===============================================
echo 说明:
echo 1. 适用于已损坏/无法启动的系统(当前在WinPE中运行)
echo 2. 需要知道目标系统安装盘的位置
echo 3. 建议先确认盘符(可打开资源管理器查看)
echo.

REM 列出当前可用盘符
echo [当前可用盘符列表]
echo -----------------------------------------------
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%i:\ (
        if exist %%i:\Windows\System32 (
            echo   %%i: - 可能包含Windows系统
        ) else if exist %%i:\ (
            echo   %%i: - 普通分区
        )
    )
)
echo -----------------------------------------------
echo 提示:损坏的系统分区通常仍能看到 Windows 文件夹
echo.

:get_offline_drive
set /p "OFFLINE_DRIVE=请输入目标系统安装盘盘符 (只输入字母,如 D): "
set "OFFLINE_DRIVE=%OFFLINE_DRIVE:~0,1%"

REM 验证输入是否合法
if "%OFFLINE_DRIVE%"=="" (
    echo 盘符不能为空!
    goto get_offline_drive
)

REM 检查盘符是否为字母
echo %OFFLINE_DRIVE%| findstr /r "^[A-Za-z]$" >nul
if errorlevel 1 (
    echo 请输入单个字母 (A-Z)!
    goto get_offline_drive
)

REM 转为大写
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if /i "%OFFLINE_DRIVE%"=="%%i" set "OFFLINE_DRIVE=%%i"
)

REM 检查目标盘符是否存在
if not exist %OFFLINE_DRIVE%:\ (
    echo 盘符 %OFFLINE_DRIVE%: 不存在!请重新输入。
    goto get_offline_drive
)

REM 检查是否存在系统必要的标志(可选,但不强制)
if not exist %OFFLINE_DRIVE%:\Windows\System32\config\SOFTWARE (
    echo 警告:%OFFLINE_DRIVE%: 可能不包含完整的Windows系统注册表
    echo 如果确认这是目标系统盘,请按 Y 继续,否则按 N 重新输入。
    set /p "confirm=是否继续? (Y/N): "
    if /i not "!confirm!"=="Y" (
        goto get_offline_drive
    )
)

echo.
echo 默认保存路径: %DEFAULT_PATH%
echo 提示:直接回车将使用默认路径,或输入自定义路径
echo.

:get_dest_offline
set "DEST_PATH="
set /p "DEST_PATH=请输入备份保存路径 [%DEFAULT_PATH%]: "

REM 如果用户直接回车,使用默认路径
if "%DEST_PATH%"=="" (
    set "DEST_PATH=%DEFAULT_PATH%"
    echo 已使用默认路径: %DEST_PATH%
)

set "DEST_PATH=%DEST_PATH:"=%"

REM 创建目标文件夹
if not exist "%DEST_PATH%" (
    echo 目标路径不存在,正在创建...
    mkdir "%DEST_PATH%" 2>nul
    if errorlevel 1 (
        echo 创建失败!请确认路径有效。
        echo.
        goto get_dest_offline
    )
)

echo.
echo 正在导出离线系统驱动...
echo 目标系统盘符: %OFFLINE_DRIVE%:
echo 保存路径: %DEST_PATH%
echo -----------------------------------------------

REM 执行离线导出命令(注意:Dism 需要支持离线处理)
dism /image:%OFFLINE_DRIVE%:\ /export-driver /destination:"%DEST_PATH%"

if %errorlevel%==0 (
    echo.
    echo ========== 导出成功! ==========
    echo 驱动已从系统盘 %OFFLINE_DRIVE%: 导出至 %DEST_PATH%
) else (
    echo.
    echo ========== 导出失败! ==========
    echo 可能原因:
    echo 1. 目标路径权限不足
    echo 2. 指定盘符不是有效的Windows安装
    echo 3. Dism 服务未正确初始化
    echo 4. 当前PE环境可能缺少 Dism 组件
)

echo.
echo 按任意键返回主菜单...
pause >nul
exit