Board logo

标题: 我的 MBR 批处理正确吗? [打印本页]

作者: ljb603     时间: 2008-7-14 09:29    标题: 我的 MBR 批处理正确吗?

下面是我对硬盘 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
作者: HAT     时间: 2008-7-14 09:35
xp系统下没有choice命令吧?
作者: whitegod     时间: 2008-7-14 09:55
楼主应该把你用到的工具也发上来呀,不然没法看呀
作者: dslz666     时间: 2008-7-24 16:03
我在网上下载了一个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