标题: [文本处理] [已解决]批处理怎样在文本内每隔N行插入内容? [打印本页]
作者: hucuibai 时间: 2011-4-19 14:58 标题: [已解决]批处理怎样在文本内每隔N行插入内容?
本帖最后由 hucuibai 于 2011-4-22 17:04 编辑
1,
2,
3,
4,
5,
6,
7,
上面是文本内容,我想输出的是
insert into
1,
2;
insert into
3,
4;
insert into
5,
6;
就是每隔N行插入一行文本,并且将插入行的前一行最后一个逗号改成分号
作者: batman 时间: 2011-4-19 15:01
楼主可否先搜索下。。。
作者: hucuibai 时间: 2011-4-19 17:11
2# batman - @echo off&setlocal enabledelayedexpansion
- set a=0
- for /f "delims=" %%i in (itemrecord_22.txt) do (
- echo %%i>>1.txt
- set /a a+=1
- set /a n=a%%2
- if !n!==0 echo 123>>1.txt
- )
复制代码
插入内容容易,重要的是我要改插入行前面一行最后一个逗号
[/code]
作者: batman 时间: 2011-4-19 18:01
给个提示:
用set /p+退格来处理
作者: CrLf 时间: 2011-4-19 18:08
退格符输出到文本时不会产生退格效果
作者: batman 时间: 2011-4-19 18:37
5# zm900612
是的,是我搞错了。。。。- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (a.txt) do (
- set /a n+=1,m=n%%2&set "str=%%a"
- if !m! equ 0 (
- echo !str:~,-1!;&echo 插入的字符
- ) else (
- echo !str!
- )
- ))>tem
- del /q a.txt&ren tem a.txt
- start a.txt
复制代码
作者: hucuibai 时间: 2011-4-20 10:11
6# batman - @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (itemrecord_10.txt) do (
- set /a n+=1,m=n%%10&set "str=%%a"
- if !m! equ 0 (echo !str:~,-2!;&echo 插入的字符)
- echo !str!
- )
- )>test.txt
- pause
复制代码
把你的改了一下,效果是可以达到了,但是最后一次分割如果小于十行的话,最后一行就不能改分号 if !m! equ 0 (echo !str:~,-2!;&echo 插入的字符)
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |