标题: [文本处理] [已解决]批处理怎样分割字符串? [打印本页]
作者: guaiwu 时间: 2011-8-20 20:45 标题: [已解决]批处理怎样分割字符串?
- 页号 页数
- 1 2
- 3 1
- 4 1
- 5 53
- 58 80
- 138 16
- 154 31
- 185 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 编辑
- @echo off
- for /f "skip=1 tokens=1* usebackq " %%a in ("01.txt") do (
- call set/a num=%%a+%%b-1
- call set char=%%char%%%%a-%%num%%;
- )
- echo %char%
复制代码
作者: guaiwu 时间: 2011-8-21 18:58
本帖最后由 guaiwu 于 2011-8-21 19:00 编辑
- @echo off
- setlocal enabledelayedexpansion
- set var=0
- for /f "skip=1 tokens=1* usebackq " %%a in ("01.txt") do (
- set /a var+=%%b
- set for=!for!%%a-!var!;
- )
- echo %for%
- pause >nul
复制代码
作者: guaiwu 时间: 2011-8-21 18:59
本帖最后由 guaiwu 于 2011-8-21 19:00 编辑
- @echo off
- setlocal enabledelayedexpansion
- set/a former=1,n=-1
- for /f "delims=" %%i in (22.txt) do set/a n+=1
- cls>nul 3>44.txt
- for /f "skip=1" %%i in (22.txt) do (
- set/a m+=1,now=%%i
- if not !m! equ %n% (set/a lastline=now-1) else set lastline=!now!
-
- set/p=!former!-!lastline!;<nul
- set former=%%i
- )
复制代码
作者: guaiwu 时间: 2011-8-21 18:59
本帖最后由 guaiwu 于 2011-8-21 19:01 编辑
- @echo off
- setlocal enabledelayedexpansion
- set/a former=1,n=-1
- for /f "delims=" %%i in (22.txt) do set/a n+=1
- cls>nul 3>44.txt
- for /f "skip=1" %%i in (22.txt) do (
- set/a m+=1,now=%%i
- set/a lastline=now-^^!^(^^!^(n-m^)^)
- set/p=!former!-!lastline!;<nul
- set former=%%i
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |