找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22538|回复: 4

[文本处理] [已解决]批处理怎样分割字符串?

[复制链接]
发表于 2011-8-20 20:45:10 | 显示全部楼层 |阅读模式
  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页

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-21 00:59:42 | 显示全部楼层
本帖最后由 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%
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-21 18:58:33 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2011-8-21 18:59:02 | 显示全部楼层
本帖最后由 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. )
复制代码
 楼主| 发表于 2011-8-21 18:59:26 | 显示全部楼层
本帖最后由 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. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:49 , Processed in 0.019789 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表