标题: [文本处理] 批处理怎样把文件的指定行写入另一个文件? [打印本页]
作者: shen_shi0 时间: 2011-4-12 11:22 标题: 批处理怎样把文件的指定行写入另一个文件?
批处理数据。记事本b.txt,要a.txt的1行12行24行36行……(12的倍数行)直至a.txt最后一行。求批处理,新手寻求帮助。
作者: CrLf 时间: 2011-4-12 12:55
本帖最后由 zm900612 于 2011-4-12 14:20 编辑
- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- set /a m+=1,"test=1/(m%%12*!!(m-1))"||echo;%%a
- ))>b.txt 2>nul
- pause
复制代码
作者: shen_shi0 时间: 2011-4-12 13:51
谢谢了 试试
作者: shen_shi0 时间: 2011-4-12 13:54
不对啊……b.txt 和a.txt 一样的
作者: shen_shi0 时间: 2011-4-12 13:56
1
2
3
4
5
6
7
8
9
10
如果要2的倍数行b.txt就是
2
4
6
8
10
作者: hanyeguxing 时间: 2011-4-12 14:13
本帖最后由 hanyeguxing 于 2011-4-12 14:33 编辑
- @echo off
- (for /f "delims=" %%a in (a.txt) do 2>nul set/an+=1,"1/(n%%12*(n-1))"||echo;%%a)>b.txt
复制代码
- @echo off&set n=-1
- :a
- if not %n%==-1 set "m=skip=%n% "
- (for /f "%m%delims=" %%a in (a.txt) do (
- echo;%%a
- set/an+=12
- goto:a
- ))>b.txt
复制代码
作者: CrLf 时间: 2011-4-12 14:20
两个小错误,已修正。
6楼代码未包含第一行...
作者: hanyeguxing 时间: 2011-4-12 14:32
7# zm900612
为什么要写成!!(m-1) 呢?
作者: CrLf 时间: 2011-4-12 14:43
因为没找到更好的算法能同时包括1和所有12的倍数...
作者: hanyeguxing 时间: 2011-4-12 14:49
9# zm900612
我的意思是,为什么 (m-1) 前要用 !! 呢?
作者: CrLf 时间: 2011-4-12 15:16
有道理,考虑不周,多余了的
作者: shen_shi0 时间: 2011-4-12 16:40
百度知道上求得的答案!谢谢大家了!呵呵!- @echo off
- echo 批处理数据。记事本b.txt,要a.txt的1行12行24行36行……(12的倍数行)直至a.txt最后一行。
- echo by breakme QQ:49849628
- set b=
- setlocal EnableDelayedExpansion
- rem 读取文件有多少行?并将第一行数据读取
- for /f "tokens=1* delims=*" %%i in (a.txt) do set /a b+=1 && if "!b!"=="1" echo %%i>>b.txt
-
- rem 按规律匹配数据 0 开始,每加 12 就读取一行
- for /l %%i in (0,12,!b!) DO call :a %%i
-
- exit
-
- :a
- set a=
- for /f "tokens=1* delims=*" %%i in ('type a.txt') do (
- set /a a+=1
- if "!a!"=="%1" echo %%i>>b.txt
- )
- goto :eof
复制代码
作者: CrLf 时间: 2011-4-12 17:46
这效率...
作者: batman 时间: 2011-4-12 19:03
为什么不用findstr /n呢?
作者: hanyeguxing 时间: 2011-4-12 19:12
14# batman
因为用了findstr /n后还得用set/a
作者: Batcher 时间: 2011-4-12 21:10
5# shen_shi0 - gawk "!(NR%2)" a.txt | more >b.txt
复制代码
作者: batman 时间: 2011-4-13 11:40
14# batman
因为用了findstr /n后还得用set/a
hanyeguxing 发表于 2011-4-12 19:12
我看不一定哦。。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |