Board logo

标题: [求助]如何取活动分区的分区号和盘符? [打印本页]

作者: gmy     时间: 2009-6-9 23:01    标题: [求助]如何取活动分区的分区号和盘符?

以下是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 ]
作者: zh159     时间: 2009-6-9 23:15
标题最好加入[出题]
作者: zh159     时间: 2009-6-10 07:24
晕还以为是出题呢...
@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

作者: gmy     时间: 2009-6-11 03:43

for /f "tokens=2,3 delims=: " %%i in ('findstr /i " Yes " a.txt') do set a1=%%i&set a2=%%j&&call echo %%a1%% %%a2%%
可以更精简,以上代码通过测试。
作者: zh159     时间: 2009-6-11 10:20
嗯,忘了用“:”了