中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 05:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助,谁有在2003PE系统下用命令行激活主分区的小工具 查看 1,300 回复 6
楼 主 求助,谁有在2003PE系统下用命令行激活主分区的小工具 发表于 2010-11-18 21:26 ·  中国 贵州 黔西南布依族苗族自治州 电信
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
谁有在2003PE系统下用命令行激活主分区的小工具,希望能贡献一下,并给出参数,我是用来配合BOOTSECT.EXE使用,以下是我的批处理
要求对硬盘分区写入MBR后同时激活它,目的是向无系统分区安装PE时,写入MBR并激活
下面的代码是写入MBR的
有个小工具加进进来就可以了
@ECHO off
color 4f
REM 改变当前路径到批处理所在路径
cd /d "%~dp0"
Echo.
Set RP=
Set /P RP=请输入您需要写入 mbr 的分区符(确认要写入的盘后再动手,不需要冒号,例如 C),然后按回车:
Echo.&&Echo.
:0001
CLS
ECHO.
ECHO 请选择写入mbr的方式
ECHO. ┏━━━━━━━━━━━━━━━━━━━━━━━┓
ECHO ┃ ┃
ECHO ┃ 1 写入nt52引导, 2k/xp/2k3系统专用 ┃
ECHO ┃ ┃
ECHO ┃ 2 写入nt60引导, vista/win2008/win7系统专用 ┃
ECHO ┃ ┃
ECHO ┗━━━━━━━━━━━━━━━━━━━━━━━┛
set /p az= 请输入对应的数字后[Enter]继续:
if "%az%"=="1" goto 00052
if "%az%"=="2" goto 00060
ECHO 输入错误,请重输入....
PAUSE>NUL 2>NUL
GOTO 0001
:00052
%SystemRoot%\system32\bootsect /nt52 %RP%: /mbr
ECHO.
ECHO nt52_mbr成功写入%RP%盘
PAUSE>NUL 2>NUL
EXIT
:00060
%SystemRoot%\system32\bootsect /nt60 %RP%: /mbr
ECHO.
ECHO nt60_mbr成功写入%RP%盘
PAUSE>NUL 2>NUL
EXIT
2 发表于 2010-11-18 22:58 ·  中国 湖南 怀化 电信
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线
记得用 Dsptw 的 /ACT 可以激活分区。

例子:
dspt 0 /ACT:2 将第一硬盘的第二分区激活,只有主分区才能被激活。


本论坛传送门:
http://www.cn-dos.net/forum/viewthread.php?tid=24419&fpage=1&highlight=Dsptw&sid=jeRGKP

[ Last edited by wewebb on 2010-11-18 at 22:59 ]
3 发表于 2010-11-19 09:31 ·  中国 贵州 黔西南布依族苗族自治州 电信
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
Originally posted by wewebb at 2010-11-18 10:58 PM:
记得用 Dsptw 的 /ACT 可以激活分区。


本论坛传送门:
http://www.cn-dos.net/forum/viewthread.php?tid=24419&fpage=1&highlight=Dsptw&sid=jeRGKP

[ Last ...


谢谢,看了一下,要是DOS下才能用,我是要在PE系统下用的
4 发表于 2010-11-19 12:21 ·  中国 广东 广州 联通
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线
在 WinXP 中,我刚才试了一下。
用上述地址中第二个附件的 DSPTW 可以激活第二个主分区的。我想在 WinPE 中也是可以的。

5 发表于 2010-11-19 12:56 ·  中国 贵州 黔西南布依族苗族自治州 电信
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
Originally posted by wewebb at 2010-11-19 12:21 PM:
在 WinXP 中,我刚才试了一下。
用上述地址中第二个附件的 DSPTW 可以激活第二个主分区的。我想在 WinPE 中也是可以的。

http://img208.poco.cn/mypoco/ ... 谢谢热心朋友,我已用GDISK32解决,帖出批处理如下,不知还能进一步优化不用到的fbinst是一个小工具,总共用到三个命令行小软件,通过测试,有BUG,对于C分区的激活没问题,其它分区的激活就不行 @ECHO off color 4f REM 改变当前路径到批处理所在路径 cd /d "%~dp0" Echo. Set RP= Set /P RP=请输入要写入mbr的分区符(请确认要写入mbr的分区是主分区,不需要冒号,例如C),然后按回车: Echo.&&Echo. :0001 CLS ECHO. ECHO 请选择写入mbr的方式 ECHO. ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ECHO ┃ ┃ ECHO ┃ 1 写入nt52引导, 2k/xp/2k3系统专用 ┃ ECHO ┃ ┃ ECHO ┃ 2 写入nt60引导, vista/win2008/win7系统专用 ┃ ECHO ┃ ┃ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━━┛ set /p az= 请输入对应的数字后继续: if "%az%"=="1" goto 00052 if "%az%"=="2" goto 00060 ECHO 输入错误,按任意键重新输入.... PAUSE>NUL 2>NUL GOTO 0001 :00052 bootsect /nt52 %RP%: /mbr ECHO. ECHO nt52_mbr成功写入%RP%:盘,按任意键继续... ECHO. PAUSE>NUL 2>NUL :0003 CLS ECHO. ECHO 正在检测磁盘信息. . . fbinst --list set /p nn=请输入要激活分区的磁盘符号回车继续:hd set hd=(hd%nn%) if "%nn%"=="" goto 0003 ECHO 您选择的磁盘符号为:%hd% ECHO 请确认选择无误后,按任意键继续 PAUSE>NUL 2>NUL :0005 CLS ECHO 是否激活%hd%的%RP%:分区? ECHO ┏━━━━━━━━━━━┓ ECHO ┃ ┃ ECHO ┃ 1 激活%RP%:分区 ┃ ECHO ┃ ┃ ECHO ┃ 2 不激活%RP%:分区 ┃ ECHO ┃ ┃ ECHO ┗━━━━━━━━━━━┛ set /p a5= 请输入对应的数字后继续: if "%a5%"=="1" goto 0004 if "%a5%"=="2" EXIT ECHO 输入错误,按任意键重新输入.... PAUSE>NUL 2>NUL GOTO 0005 :0004 if "%RP%"=="C" SET RR=1&&GOTO 0006 if "%RP%"=="D" SET RR=2&&GOTO 0006 if "%RP%"=="E" SET RR=3&&GOTO 0006 if "%RP%"=="F" SET RR=4&&GOTO 0006 if "%RP%"=="G" SET RR=5&&GOTO 0006 if "%RP%"=="H" SET RR=6&&GOTO 0006 if "%RP%"=="I" SET RR=7&&GOTO 0006 if "%RP%"=="J" SET RR=8&&GOTO 0006 if "%RP%"=="K" SET RR=9&&GOTO 0006 if "%RP%"=="L" SET RR=10&&GOTO 0006 if "%RP%"=="M" SET RR=11&&GOTO 0006 if "%RP%"=="N" SET RR=12&&GOTO 0006 if "%RP%"=="O" SET RR=13&&GOTO 0006 if "%RP%"=="P" SET RR=14&&GOTO 0006 if "%RP%"=="Q" SET RR=15&&GOTO 0006 if "%RP%"=="R" SET RR=16&&GOTO 0006 if "%RP%"=="S" SET RR=17&&GOTO 0006 if "%RP%"=="T" SET RR=18&&GOTO 0006 if "%RP%"=="U" SET RR=19&&GOTO 0006 if "%RP%"=="V" SET RR=20&&GOTO 0006 if "%RP%"=="W" SET RR=21&&GOTO 0006 if "%RP%"=="X" SET RR=22&&GOTO 0006 if "%RP%"=="Y" SET RR=23&&GOTO 0006 if "%RP%"=="Z" SET RR=24&&GOTO 0006 if "%RP%"=="A" SET RR=25&&GOTO 0006 if "%RP%"=="B" SET RR=26 :0006 CLS ECHO 您选择的分区号为:%RP%: ECHO 请确认选择无误后,按任意键继续,若无反应,请按两次任意键。。。 PAUSE>NUL 2>NUL set /a mm=%nn%+1 Gdisk32 %mm% /act /p:%RR% ECHO 您选择的%hd%磁盘%RP%:分区已激活 PAUSE>NUL 2>NUL EXIT :00060 bootsect /nt60 %RP%: /mbr ECHO. ECHO nt60_mbr成功写入%RP%盘,按任意键继续.... PAUSE>NUL 2>NUL :0003A CLS ECHO. ECHO 正在检测磁盘信息. . . fbinst --list set /p nn=请输入要激活分区的磁盘符号回车继续:hd set hd=(hd%nn%) if "%nn%"=="" goto 0003A ECHO 您选择的磁盘符号为:%hd% ECHO 请确认选择无误后,按任意键继续 PAUSE>NUL 2>NUL :0005A CLS ECHO 是否激活%hd%的%RP%:分区? ECHO ┏━━━━━━━━━━━┓ ECHO ┃ ┃ ECHO ┃ 1 激活%RP%:分区 ┃ ECHO ┃ ┃ ECHO ┃ 2 不激活%RP%:分区 ┃ ECHO ┃ ┃ ECHO ┗━━━━━━━━━━━┛ set /p b5= 请输入对应的数字后继续: if "%b5%"=="1" goto 0004A if "%b5%"=="2" EXIT ECHO 输入错误,按任意键重新输入.... PAUSE>NUL 2>NUL GOTO 0005A :0004A if "%RP%"=="C" SET RR=1&&GOTO 0006A if "%RP%"=="D" SET RR=2&&GOTO 0006A if "%RP%"=="E" SET RR=3&&GOTO 0006A if "%RP%"=="F" SET RR=4&&GOTO 0006A if "%RP%"=="G" SET RR=5&&GOTO 0006A if "%RP%"=="H" SET RR=6&&GOTO 0006A if "%RP%"=="I" SET RR=7&&GOTO 0006A if "%RP%"=="J" SET RR=8&&GOTO 0006A if "%RP%"=="K" SET RR=9&&GOTO 0006A if "%RP%"=="L" SET RR=10&&GOTO 0006A if "%RP%"=="M" SET RR=11&&GOTO 0006A if "%RP%"=="N" SET RR=12&&GOTO 0006A if "%RP%"=="O" SET RR=13&&GOTO 0006A if "%RP%"=="P" SET RR=14&&GOTO 0006A if "%RP%"=="Q" SET RR=15&&GOTO 0006A if "%RP%"=="R" SET RR=16&&GOTO 0006A if "%RP%"=="S" SET RR=17&&GOTO 0006A if "%RP%"=="T" SET RR=18&&GOTO 0006A if "%RP%"=="U" SET RR=19&&GOTO 0006A if "%RP%"=="V" SET RR=20&&GOTO 0006A if "%RP%"=="W" SET RR=21&&GOTO 0006A if "%RP%"=="X" SET RR=22&&GOTO 0006A if "%RP%"=="Y" SET RR=23&&GOTO 0006A if "%RP%"=="Z" SET RR=24&&GOTO 0006A if "%RP%"=="A" SET RR=25&&GOTO 0006A if "%RP%"=="B" SET RR=26 :0006A CLS ECHO 您选择的分区号为:%RP%: ECHO 请确认选择无误后,按任意键继续,若无反应,请按两次任意键。。。 PAUSE>NUL 2>NUL set /a mm=%nn%+1 Gdisk32 %mm% /act /p:%RR% ECHO 您选择的%hd%磁盘%RP%:分区已激活 PAUSE>NUL 2>NUL EXIT [ Last edited by tclshx on 2010-11-19 at 13:10 ]
6 发表于 2010-11-19 19:19 ·  中国 湖南 怀化 电信
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线
关于 gdisk32 的 /p 参数意思,其实跟 C 、 D 这些盘符不是固定对应的。

/p:num 这个 num 是该硬盘中第几分区的序数。例如: 将第3块硬盘的第3主分区激活,命令就是:
gdisk32 3 /act /p:3

同一个分区,可能是 E 盘,也可能是 F 盘。



我想在 VirtualBox 中来说明一下:



[ Last edited by wewebb on 2010-11-19 at 19:35 ]
7 发表于 2010-11-19 20:19 ·  中国 贵州 黔西南布依族苗族自治州 电信
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
Originally posted by wewebb at 2010-11-19 07:19 PM:
关于 gdisk32 的 /p 参数意思,其实跟 C 、 D 这些盘符不是固定对应的。

/p:num 这个 num 是该硬盘中第几分区的序数。例如: 将第3块硬盘的第3主分区 ...



谢谢回复,差不多解决了

[ Last edited by tclshx on 2010-11-20 at 00:13 ]
论坛跳转: