Board logo

标题: [文本处理] 求教,提取执行结果中的指定字符串[已解决] [打印本页]

作者: xiongmx    时间: 2008-10-13 18:02     标题: 求教,提取执行结果中的指定字符串[已解决]

我需要提取下面执行结果中的指定位置的字符串(因为每次结果会不同),用FOR命令能达到目的吗?或者有什么其他好办法?
F:\Phone\Diamond\Tools\Dump ROM&bootloader\Dump_SPL>pdocread -l
209.50M (0xd180000) DSK1:
| 3.12M (0x31f000) Part00
| 5.25M (0x540000) Part01
| 83.13M (0x5320000) Part02
| 118.00M (0x7600000) Part03
3.75G (0xf0000000) DSK7:
| 3.75G (0xf0000000) PART00
STRG handles:
handle 27a34ebe 3.75G (0xf0000000)
handle a7ccbf82118.00M (0x7600000)
handle e7db2776 83.13M (0x5320000)
handle 47db2752 5.25M (0x540000)
handle c7db270a 3.12M (0x31f000)
disk 27a34ebe
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk a7ccbf82
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk e7db2776
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk 47db2752
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk c7db270a
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


F:\Phone\Diamond\Tools\Dump ROM&bootloader\Dump_SPL>

[ 本帖最后由 xiongmx 于 2008-10-13 19:12 编辑 ]
作者: pusofalse    时间: 2008-10-13 18:14

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=1*" %%i in ('pdocread -l^|findstr /i "^handle"') do (
  3.       set "var=%%j"&set/a n+=1
  4.       echo !var:~,8! !var:~-10,9!
  5.       if !n! equ 2 goto next
  6. )
  7. :next     
  8. pause
复制代码

作者: xiongmx    时间: 2008-10-13 18:18

呵呵,十分感谢,如果我想把这4个字符串分别赋值该怎么改呢
下一步我要将得到的4个数值分别赋值为size1到size4以加入相应命令行

[ 本帖最后由 xiongmx 于 2008-10-13 18:50 编辑 ]
作者: pusofalse    时间: 2008-10-13 19:07

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=1*" %%i in ('findstr /i "^handle" a.txt') do (
  3.       set "var=%%j"&set "var=!var:~,8! !var:~-10,9!"
  4.       echo !var!&set/a n+=1
  5.       for %%a in (!var!) do set/a m+=1&set "size!m!=%%a"
  6.       if !n! equ 2 goto next
  7. )
  8. :next
  9. for /l %%a in (1 1 4) do echo size%%a !size%%a!
  10. pause
复制代码
You'd better ask all questions in one time.
作者: xiongmx    时间: 2008-10-13 19:12

十分感谢,刚才脑子没转过来。。。。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2