中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 04:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我的 MBR 批处理正确吗? 查看 801 回复 3
楼 主 我的 MBR 批处理正确吗? 发表于 2008-07-14 09:29 ·  中国 广东 肇庆 电信
初级用户
积分 112
发帖 49
注册 2006-10-19 11:04
19年会员
UID 66890
状态 离线
下面是我对硬盘 MBR 操作一个批处理,这样写对吗?(特别是每项的返回码是否正确):
@echo off
cls
echo.
echo 硬盘 MBR 操作选项:
echo.
echo 1.备份 2.恢复 3.重建
echo.
echo 4.查看 5.清零 6.退出
echo.
choice /c:123456 /n 我要:
if errorlevel 6 goto Exit
if errorlevel 5 goto dspt5
if errorlevel 4 goto dspt4
if errorlevel 3 goto dspt3
if errorlevel 2 goto dspt2
if errorlevel 1 goto dspt1

:dspt1
cls
dspt 0 0 1 /s %ramdrive%\mbr.bak /y >nul
if errorlevel 1 echo 读取0柱1扇区的MBR失败!
if errorlevel 1 goto Exit
dspt 0 35 1 /r %ramdrive%\mbr.bak /y >nul
if errorlevel 1 echo 备份MBR到0柱35扇区失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt2
cls
dspt 0 35 1 /s %ramdrive%\mbr.res /y >nul
if errorlevel 1 echo 读取0柱35扇区的MBR失败!
if errorlevel 1 goto Exit
dspt 0 0 1 /r %ramdrive%\mbr.res /y >nul
if errorlevel 1 echo 恢复硬盘 MBR 失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt3
cls
dspt 0 /mbr /noback /y >nul
if errorlevel 1 echo 重建硬盘 MBR 失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt4
cls
dspt 0 0 1 /e /y >nul
if errorlevel 1 echo 硬盘 MBR 清零失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt5
cls
dspt 0 35 1 /L /p /a
if errorlevel 1 echo 你没有备份 MBR !
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:Exit
2 发表于 2008-07-14 09:35 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
xp系统下没有choice命令吧?
3 发表于 2008-07-14 09:55 ·  中国 江苏 苏州 昆山市 电信
初级用户
积分 26
发帖 13
注册 2007-11-15 21:09
18年会员
UID 102773
性别 男
来自 江苏无锡
状态 离线
楼主应该把你用到的工具也发上来呀,不然没法看呀
4 发表于 2008-07-24 16:03 ·  中国 广东 广州 电信
中级用户
★★
积分 233
发帖 117
注册 2007-11-28 02:38
18年会员
UID 104005
性别 男
状态 离线
我在网上下载了一个choice 在用choice之后,无法显示中文。


如果是在XP下,试试这个行不行





@echo off
cls
:began
echo.
echo 硬盘 MBR 操作选项:
echo.
echo 1.备份 2.恢复 3.重建
echo.
echo 4.查看 5.清零 6.退出
echo.
set a=
set /p a=请在这里输入你要选择:
if "%a%" == "1" goto dspt1
if "%a%" == "2" goto dspt2
if "%a%" == "3" goto dspt3
if "%a%" == "4" goto dspt4
if "%a%" == "5" goto dspt5
if "%a%" == "6" goto Exit
cls
echo 你输入错误,请重新输入
echo\&echo\
goto began


:dspt1
cls
dspt 0 0 1 /s %ramdrive%\mbr.bak /y >nul
if errorlevel 1 echo 读取0柱1扇区的MBR失败!
if errorlevel 1 goto Exit
dspt 0 35 1 /r %ramdrive%\mbr.bak /y >nul
if errorlevel 1 echo 备份MBR到0柱35扇区失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt2
cls
dspt 0 35 1 /s %ramdrive%\mbr.res /y >nul
if errorlevel 1 echo 读取0柱35扇区的MBR失败!
if errorlevel 1 goto Exit
dspt 0 0 1 /r %ramdrive%\mbr.res /y >nul
if errorlevel 1 echo 恢复硬盘 MBR 失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt3
cls
dspt 0 /mbr /noback /y >nul
if errorlevel 1 echo 重建硬盘 MBR 失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt4
cls
dspt 0 0 1 /e /y >nul
if errorlevel 1 echo 硬盘 MBR 清零失败!
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:dspt5
cls
dspt 0 35 1 /L /p /a
if errorlevel 1 echo 你没有备份 MBR !
if errorlevel 0 echo 恭喜你,操作成功!!!
goto Exit

:Exit













论坛跳转: