中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:12
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 活动分区与最后分区确定的批处理(DOS/omnifs版)
楼 主 活动分区与最后分区确定的批处理(DOS/omnifs版) 发表于 2008-04-22 14:36 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
活动分区与最后分区确定的批处理(DOS/omnifs版)
@echo off
if %nhdd%.==. set nhdd=1

:BEGIN
if exist dpit2.ini del dpit2.ini >nul
if exist p_d.ini del p_d.ini >nul
omnifs /dl=%nhdd% diskinfo>omni_dd.txt
type omni_dd.txt|find /i "%nhdd%.1:" >nul
if errorlevel 1 goto fail
strings lines=LINESIZE omni_dd.txt
strings lines=add %lines%,2
set line=1
:omni
if %line%.==%lines%. goto omni_1
strings line=add %line%,1
strings lined=read omni_dd.txt,%line%
strings omn_row1=left %lined%,1
if not %omn_row1%.==%nhdd%. goto omni
echo %lined%|find /i "FAT" >nul
if not errorlevel 1 goto omni_6
echo %lined%|find /i "NTFS" >nul
if not errorlevel 1 goto omni_6
echo %lined%|find /i "Active" >nul
if not errorlevel 1 goto omni_6
goto omni
:omni_6
echo %lined%>>dpit2.ini
strings omn_row5=mid %lined%,5,1
if %omn_row5%.==:. goto omni_4
strings omn_row3=mid %lined%,3,1
strings omn_row4=mid %lined%,19,3
if not %actpw%.==. goto omni_5
strings omn_row5=mid %lined%,24,6
goto omni_5
:omni_4
strings omn_row3=mid %lined%,3,2
strings omn_row4=mid %lined%,20,3
if not %actpw%.==. goto omni_5
strings omn_row5=mid %lined%,25,6
:omni_5
if not %omn_row5%#==Active# goto omni_2
set actpw=%omn_row3%
:omni_2
set lastpw=%omn_row3%
if not %omn_row4%.==. echo %omn_row1%.%omn_row3% %omn_row4%>>p_d.ini
goto omni
:omni_1
if %actpw%.==. set actpw=1
cls
echo.
echo 第一硬盘活动分区是: %nhdd%:%actpw%
echo 第一硬盘最后分区是: %nhdd%:%lastpw%
goto exit_1
:fail
cls
echo.
echo Fail, 未能获取第一硬盘有效分区信息。
echo.
pause
rb

:exit_1
set line=
set lines=
set lined=
set omn_row1=
set omn_row3=
set omn_row4=
set omn_row5=

仅供参考。
欢迎批评指正。



Windows 一键还原
http://www.yjhy.com
2 发表于 2008-04-22 22:27 ·  中国 广东 深圳 宝安区 电信
高级用户
★★
积分 525
发帖 222
注册 2006-08-28 21:07
UID 61476
状态 离线
Originally posted by lianjiang2004 at 2008-4-22 14:36:
活动分区与最后分区确定的批处理(DOS/omnifs版)
@echo off
if %nhdd%.==. set nhdd=1

:BEGIN
if exist dpit2.ini del dpit2.ini >nul
if exist p_d.ini del p_d.ini >nul
omni ...


哎呀,lmod用的有问题。看来只能用c: 或 1:1的形式了。
strings 运行的话,也可以…… 我再试试
3 发表于 2008-04-23 08:03 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
我这段批处理里没有用lmod。
Windows 一键还原
http://www.yjhy.com
4 发表于 2008-04-23 10:20 ·  中国 广东 深圳 电信
高级用户
★★
积分 525
发帖 222
注册 2006-08-28 21:07
UID 61476
状态 离线
lmod搞定了,呵呵。
论坛跳转: