
保存编码为: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