Board logo

标题: [文本处理] [已解决]批处理怎样分割字符串? [打印本页]

作者: guaiwu    时间: 2011-8-20 20:45     标题: [已解决]批处理怎样分割字符串?

  1. 页号 页数
  2. 1 2
  3. 3 1
  4. 4 1
  5. 5 53
  6. 58 80
  7. 138 16
  8. 154 31
  9. 185 1
复制代码
用批处理来完成一个算法:
把上面一段数据编写输出成如下:
  1. 1-2;3-3;4-4;5-57;58-137;138-153;154-184;185-185;
复制代码
上面输出的意思一个数据从1到186,其中分成九小段
第1段:从  第1页     到 第2页,   共2页
第2段:从  3页        到 第 3页,  共1页
第3段:从  第4页     到 第4页,   共1页
第4段:从  第5页     到 第57页, 共53页
第5段:从  第59页   到 第137页,共80页
第6段:从  第138页 到 第153页,共16页
第7段:从  第15页4 到 第184页,共31页
第8段:从  第185页 到 第185页,共1页
作者: hfg1977    时间: 2011-8-21 00:59

本帖最后由 hfg1977 于 2011-8-21 01:01 编辑
  1. @echo off
  2. for /f "skip=1 tokens=1* usebackq " %%a in ("01.txt") do (
  3. call set/a num=%%a+%%b-1
  4. call set char=%%char%%%%a-%%num%%;
  5. )
  6. echo %char%
复制代码

作者: guaiwu    时间: 2011-8-21 18:58

本帖最后由 guaiwu 于 2011-8-21 19:00 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set var=0
  4. for /f "skip=1 tokens=1* usebackq " %%a in ("01.txt") do (
  5. set /a var+=%%b
  6. set for=!for!%%a-!var!;
  7. )
  8. echo %for%
  9. pause >nul
复制代码

作者: guaiwu    时间: 2011-8-21 18:59

本帖最后由 guaiwu 于 2011-8-21 19:00 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set/a former=1,n=-1
  4. for /f "delims=" %%i in (22.txt) do set/a n+=1
  5. cls>nul 3>44.txt
  6. for /f "skip=1" %%i in (22.txt) do (
  7. set/a m+=1,now=%%i
  8. if not !m! equ %n% (set/a lastline=now-1) else set lastline=!now!
  9.   
  10. set/p=!former!-!lastline!;<nul
  11.   set former=%%i
  12. )
复制代码

作者: guaiwu    时间: 2011-8-21 18:59

本帖最后由 guaiwu 于 2011-8-21 19:01 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set/a former=1,n=-1
  4. for /f "delims=" %%i in (22.txt) do set/a n+=1
  5. cls>nul 3>44.txt
  6. for /f "skip=1" %%i in (22.txt) do (
  7. set/a m+=1,now=%%i
  8. set/a lastline=now-^^!^(^^!^(n-m^)^)
  9. set/p=!former!-!lastline!;<nul
  10. set former=%%i
  11. )
复制代码





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