首页 U盘全能修复工具批处理命令版

U盘全能修复工具批处理命令版

呆呆 2025-12-12 0 15

U盘全能修复工具

闲着没有事看到网络上有一款U盘全能修复工具批处理命令版不错,看了一下批处理写的有点问题就修复了一下。


主要改进:
1、管理员权限检查 - 确保有足够权限执行操作

2、输入验证 - 防止无效或危险的输入

3、磁盘编号确认 - 减少误操作系统磁盘的风险

4、更安全的格式化 - 使用exFAT格式,兼容性更好

5、磁盘列表功能 - 帮助用户确认磁盘编号

6、错误处理 - 更完善的错误检查和反馈

7、进度提示 - 让用户知道当前执行步骤

建议用户在使用前备份重要数据,并确保正确识别U盘磁盘编号,避免误操作导致数据丢失。

@echo off
title U盘全能修复工具 -呆叔
mode con: cols=85 lines=30
color 0A

:: 检查管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' neq '0' (
    echo 请以管理员身份运行此工具!
    pause
    exit /b 1
)

:MAIN
cls
echo.
echo   ================================================
echo          U盘全能修复工具 v2.0 -呆叔
echo   ================================================
echo.
echo        请选择要修复的问题类型:
echo        ----------------------------
echo        1. U盘文件无法复制
echo        2. U盘提示需要格式化
echo        3. U盘显示0字节无法格式化
echo        4. U盘插入电脑无显示
echo        5. 查看磁盘信息
echo        6. 退出工具
echo.
echo   ================================================
set /p choice="       请输入选项 (1-6): "

if "%choice%"=="1" goto PROBLEM1
if "%choice%"=="2" goto PROBLEM2
if "%choice%"=="3" goto PROBLEM3
if "%choice%"=="4" goto PROBLEM4
if "%choice%"=="5" goto LIST_DISKS
if "%choice%"=="6" exit
echo 无效输入,请重新选择
timeout /t 2 >nul
goto MAIN

:LIST_DISKS
cls
echo.
echo   [磁盘列表]
echo   ------------------------------------------------
echo   正在获取磁盘信息...
echo   ------------------------------------------------
(
echo list disk
echo list volume
) >list_disks.txt
diskpart /s list_disks.txt
del list_disks.txt
echo.
pause
goto MAIN

:PROBLEM1
call :GET_DRIVE_LETTER
if errorlevel 1 goto MAIN

cls
echo.
echo   [修复U盘文件无法复制问题]
echo   ------------------------------------------------
echo   正在执行修复...
echo   ------------------------------------------------
echo.
echo 步骤1: 检查磁盘错误...
chkdsk %drive% /f
if errorlevel 1 (
    echo 磁盘检查失败!
    pause
    goto MAIN
)

echo.
echo 步骤2: 清除只读属性...
attrib -r -s -h %drive%\*.* /s /d >nul 2>&1

echo 步骤3: 重置安全权限...
icacls %drive%\*.* /reset /t /c /q >nul 2>&1

echo.
echo 修复完成!建议重新插拔U盘。
pause
goto MAIN

:PROBLEM2
call :GET_DRIVE_LETTER
if errorlevel 1 goto MAIN

cls
echo.
echo   [修复U盘提示需要格式化问题]
echo   ------------------------------------------------
echo   正在尝试修复文件系统...
echo   ------------------------------------------------
echo.
echo 正在执行深度修复...
chkdsk %drive% /r /x
echo.
if errorlevel 1 (
    echo 修复失败,建议备份数据后格式化。
) else (
    echo 修复成功!请重新插拔U盘。
)
pause
goto MAIN

:PROBLEM3
cls
echo.
echo   [修复U盘0字节无法格式化问题]
echo   ================================================
echo   警告:此操作将清除U盘所有数据!
echo   请确认以下信息:
echo   ================================================
echo.
echo 请先查看磁盘列表确认U盘编号:
call :LIST_DISKS
echo.

:GET_DISK_NUM
set /p disknum="请输入U盘磁盘编号: "
if "%disknum%"=="" goto GET_DISK_NUM
echo %disknum%|findstr /r "^[0-9][0-9]*$" >nul || (
    echo 请输入有效的数字!
    goto GET_DISK_NUM
)

echo.
echo ================================================
echo 警告:即将清理磁盘 %disknum% 的所有数据!
echo 请确认这是您的U盘而不是系统硬盘!
echo ================================================
set /p confirm="确认继续吗?(Y/N): "
if /i not "%confirm%"=="Y" goto MAIN

echo.
echo 正在执行修复...
(
echo select disk %disknum%
echo clean
echo create partition primary
echo format fs=exFAT quick label="USB_DISK"
echo assign
) >format_disk.txt

diskpart /s format_disk.txt
del format_disk.txt

echo.
echo 操作完成!U盘已重新格式化为exFAT格式。
pause
goto MAIN

:PROBLEM4
cls
echo.
echo   [修复U盘插入无显示问题]
echo   ------------------------------------------------
echo   正在重新分配驱动器号...
echo   ------------------------------------------------
echo.

call :LIST_DISKS

:GET_NEW_DRIVE
set /p disknum="请输入U盘磁盘编号: "
if "%disknum%"=="" goto GET_NEW_DRIVE

:GET_DRIVE_LETTER
set /p newdrive="请输入新盘符(不要加冒号): "
if "%newdrive%"=="" goto GET_DRIVE_LETTER
set "newdrive=%newdrive:~0,1%"

echo.
echo 正在分配驱动器号...
(
echo select disk %disknum%
echo list partition
echo select partition 1
echo assign letter=%newdrive%
) >assign_drive.txt

diskpart /s assign_drive.txt
del assign_drive.txt

echo 操作完成!请检查 %newdrive%: 驱动器
pause
goto MAIN

:GET_DRIVE_LETTER
setlocal
:RETRY_DRIVE
set /p drive="请输入U盘盘符(例如 G): "
if "%drive%"=="" goto RETRY_DRIVE
set "drive=%drive:~0,1%"
set "drive=%drive%:"

:: 验证驱动器存在且不是系统盘
if not exist %drive%\NUL (
    echo 错误:驱动器 %drive% 不存在!
    endlocal
    exit /b 1
)

:: 检查是否是系统盘
for %%i in (C D) do (
    if /i "%drive%"=="%%i:" (
        echo 警告:%drive% 可能是系统盘!
        set /p confirm="确认这是U盘吗?(Y/N): "
        if /i not "%confirm%"=="Y" (
            endlocal
            exit /b 1
        )
    )
)
endlocal & set "drive=%drive%"
exit /b 0
以上代码保存在TXT文本里,在把后缀. txt改成.bat使用。

好了这次文章就到这里了,有不懂可以留言哦!·呆呆blog-zaibk网络写本会及时回复的!

#软件介绍##U盘全能修复工具#

免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
赞赏作者
打赏作者 微信打赏
作者: 呆呆 本文最后编辑于2025-12-12 09:45:41
呆呆

作者的微博

发表评论