中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 活动分区与最后分区确定的批处理(DOS/omnifs版)
作者:
标题: 活动分区与最后分区确定的批处理(DOS/omnifs版) 上一主题 | 下一主题
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『楼 主』:  活动分区与最后分区确定的批处理(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=

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







Windows 一键还原
http://www.yjhy.com
2008-4-22 14:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 2 楼』:  



  Quote:
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 运行的话,也可以…… 我再试试

2008-4-22 22:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 3 楼』:  

我这段批处理里没有用lmod。



Windows 一键还原
http://www.yjhy.com
2008-4-23 08:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 4 楼』:  

lmod搞定了,呵呵。

2008-4-23 10:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: