中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 01:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何取活动分区的分区号和盘符? 查看 957 回复 4
楼 主 [求助]如何取活动分区的分区号和盘符? 发表于 2009-06-09 23:01 ·  中国 河北 唐山 联通
版主
★★★
操作系统爱好者
积分 1,113
发帖 392
注册 2002-11-11 00:00
23年会员
UID 228
性别 男
状态 离线
以下是DSPTW产生的磁盘分区列表a.txt:

No. Dr Tag FileSystem Volume Act StartPos Sectors MBytes FreeMB
1:1 Pri HIDE_DELL 63 144522 70
1:2 I: Pri HPFS/NTFS RECOVERY 145408 20971520 10240 4105
1:3 D: Pri HPFS/NTFS OS Yes 21116928 83886080 40960 21514
1:4 C: Log HPFS/NTFS DATAPART1 105005056 101298176 49462 6122
1:5 E: Log HPFS/NTFS SOFT 206305280 20480000 10000 2382
1:6 F: Log HPFS/NTFS BACKUP 226787328 80592896 39352 12603
1:7 Log HIDE_DELL 307382272 5195776 2537


任务:找到YES(活动分区标识)所在行的分区号和盘符,分别赋予变量 a1 和 a2 ,本例的结果应该是 a1=3 , a2=D

要求:用FOR和FINDSTR等自带命令,不要使用第三方工具,输出用echo a1和echo a2,分别只用一行完成。

[ Last edited by gmy on 2009-6-10 at 04:21 ]
DOS之家 http://doshome.com 站长 葛明阳
2 发表于 2009-06-09 23:15 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
标题最好加入
3 发表于 2009-06-10 07:24 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
晕还以为是出题呢...

@echo off
for /f "tokens=1,2" %%i in ('findstr/i "Yes" a.txt') do set a1=%%i&set a2=%%j&&call set a1=%%a1:~-1%%&call set a2=%%a2:~0,1%%&&call echo %%a1%% %%a2%%
pause
4 发表于 2009-06-11 03:43 ·  中国 河北 唐山 联通
版主
★★★
操作系统爱好者
积分 1,113
发帖 392
注册 2002-11-11 00:00
23年会员
UID 228
性别 男
状态 离线
for /f "tokens=2,3 delims=: " %%i in ('findstr /i " Yes " a.txt') do set a1=%%i&set a2=%%j&&call echo %%a1%% %%a2%%


可以更精简,以上代码通过测试。
DOS之家 http://doshome.com 站长 葛明阳
5 发表于 2009-06-11 10:20 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
嗯,忘了用“:”了
论坛跳转: