磁盘写保护

介绍

    保存编码为:ANSI 后缀为.bat

    @echo off
    title 磁盘写保护管理工具
    color 0A
    
    :: 检查是否以管理员权限运行
    NET SESSION >nul 2>&1
    IF %ERRORLEVEL% NEQ 0 (
        echo 正在请求管理员权限...
        powershell -Command "Start-Process '%~f0' -Verb RunAs"
        exit /b
    )
    
    :MAIN_MENU
    cls
    echo ================================
    echo     磁盘写保护管理工具
    echo ================================
    echo.
    echo  1. 查看所有磁盘列表
    echo  2. 解除磁盘写保护 (清除只读)
    echo  3. 开启磁盘写保护 (设置只读)
    echo  4. 查看当前磁盘属性
    echo  5. 退出
    echo.
    echo ================================
    set /p choice=请输入数字选择操作 (1-5):
    
    if "%choice%"=="1" goto LIST_DISK
    if "%choice%"=="2" goto CLEAR_READONLY
    if "%choice%"=="3" goto SET_READONLY
    if "%choice%"=="4" goto VIEW_ATTRIBUTES
    if "%choice%"=="5" goto EXIT
    echo 无效选择,请重新输入!
    timeout /t 2 >nul
    goto MAIN_MENU
    
    :LIST_DISK
    cls
    echo ===== 当前磁盘列表 =====
    echo.
    echo list disk | diskpart
    echo.
    echo 请记录你需要操作的磁盘编号(如 0, 1, 2...)
    pause
    goto MAIN_MENU
    
    :CLEAR_READONLY
    cls
    echo ===== 解除写保护 (清除只读属性) =====
    echo.
    echo ---------- 当前磁盘列表 ----------
    echo list disk | diskpart
    echo ----------------------------------
    echo.
    set /p disknum=请输入要操作的磁盘编号(如 0, 1, 2...): 
    echo.
    echo 正在执行解除操作...
    (
    echo select disk %disknum%
    echo attributes disk clear readonly
    ) | diskpart
    echo.
    echo 操作已完成。请尝试在磁盘中新建或删除文件以验证。
    pause
    goto MAIN_MENU
    
    :SET_READONLY
    cls
    echo ===== 开启写保护 (设置只读属性) =====
    echo.
    echo ---------- 当前磁盘列表 ----------
    echo list disk | diskpart
    echo ----------------------------------
    echo.
    set /p disknum=请输入要操作的磁盘编号(如 0, 1, 2...): 
    echo.
    echo 正在执行设置操作...
    (
    echo select disk %disknum%
    echo attributes disk set readonly
    ) | diskpart
    echo.
    echo 操作已完成。请尝试在磁盘中新建或删除文件以验证。
    pause
    goto MAIN_MENU
    
    :VIEW_ATTRIBUTES
    cls
    echo ===== 查看磁盘属性 =====
    echo.
    echo ---------- 当前磁盘列表 ----------
    echo list disk | diskpart
    echo ----------------------------------
    echo.
    set /p disknum=请输入要查看的磁盘编号(如 0, 1, 2...): 
    echo.
    echo 正在查询属性...
    (
    echo select disk %disknum%
    echo attributes disk
    ) | diskpart
    echo.
    pause
    goto MAIN_MENU
    
    :EXIT
    echo 正在退出...
    timeout /t 1 >nul
    exit