中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-06 10:00
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS启动盘 & LOGO技术 (启动盘室) » 活动分区与最后分区确定的批处理(DOS/omnifs版)
可打印版本  1,230 / 3
第1楼 lianjiang2004 发表于 2008-04-22 14:36
金牌会员 发帖 1,884 积分 3,946
活动分区与最后分区确定的批处理(DOS/omnifs版)
活动分区与最后分区确定的批处理(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=

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



第2楼 cchessbd 发表于 2008-04-22 22:27
高级用户 发帖 222 积分 525
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楼 lianjiang2004 发表于 2008-04-23 08:03
金牌会员 发帖 1,884 积分 3,946
我这段批处理里没有用lmod。
第4楼 cchessbd 发表于 2008-04-23 10:20
高级用户 发帖 222 积分 525
lmod搞定了,呵呵。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023