Board logo

标题: [文本处理] [已解决]批处理怎样在文本内每隔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
  1. @echo off&setlocal enabledelayedexpansion
  2. set a=0
  3. for /f "delims=" %%i in (itemrecord_22.txt) do (
  4. echo %%i>>1.txt
  5. set /a a+=1
  6. set /a n=a%%2
  7. if !n!==0 echo 123>>1.txt
  8. )
复制代码
插入内容容易,重要的是我要改插入行前面一行最后一个逗号
[/code]
作者: batman    时间: 2011-4-19 18:01

给个提示:
用set /p+退格来处理
作者: CrLf    时间: 2011-4-19 18:08

退格符输出到文本时不会产生退格效果
作者: batman    时间: 2011-4-19 18:37

5# zm900612
是的,是我搞错了。。。。
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.       set /a n+=1,m=n%%2&set "str=%%a"
  4.       if !m! equ 0 (
  5.          echo !str:~,-1!;&echo 插入的字符
  6.          ) else (
  7.          echo !str!
  8.       )
  9. ))>tem
  10. del /q a.txt&ren tem a.txt
  11. start a.txt      
复制代码

作者: hucuibai    时间: 2011-4-20 10:11

6# batman
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (itemrecord_10.txt) do (
  3.       set /a n+=1,m=n%%10&set "str=%%a"
  4.       if !m! equ 0 (echo !str:~,-2!;&echo 插入的字符)
  5.       echo !str!
  6.       )
  7. )>test.txt
  8. pause
复制代码
把你的改了一下,效果是可以达到了,但是最后一次分割如果小于十行的话,最后一行就不能改分号      if !m! equ 0 (echo !str:~,-2!;&echo 插入的字符)




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