Board logo

标题: [文本处理] [已解决]批处理怎样将一个txt文本每隔几行/指定行数插入另一txt文本的一行? [打印本页]

作者: rigg    时间: 2014-12-12 13:47     标题: [已解决]批处理怎样将一个txt文本每隔几行/指定行数插入另一txt文本的一行?

本帖最后由 pcl_test 于 2016-11-10 09:46 编辑

假如有1.txt , 2.txt两个文件,1.txt里面有2000,2.txt里面有10行,我要把1.txt每隔100行插入2.txt的一行内容,2.txt的内容读完后重头开始继续循环,直到任务结束
因为我不懂得写bat,现在手里的一个现成bat,只能隔N行插入一个固定内容,但是我不懂得去改,还希望各位达人多多帮忙
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p file=拖入文件并回车:
  3. set/p count=输入每隔多少行插入:
  4. set/p blank=输入插入多少行:
  5. set n=&set m=
  6. (for /f "usebackq delims=" %%a in ("%file%") do (
  7.   echo,%%a
  8.   set/a n+=1,m=n%%count
  9.   if !m! equ 0 for /l %%b in (1 1 %blank%) do echo 要插入的内容
  10. ))>new.txt
复制代码

作者: apang    时间: 2014-12-12 16:30

本帖最后由 apang 于 2014-12-12 23:34 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "间隔行数=2"
  4. for /f "delims=" %%a in (2.txt) do (
  5.         set /a LineA+=1
  6.         set "_!LineA!=%%a"
  7. )
  8. (for /f "delims=" %%a in (1.txt) do (
  9.         echo,%%a
  10.         set /a "m=(LineB+=1)%%间隔行数, x+=^!m, y=(x-1)%%LineA+1"
  11.         if "!m!" == "0" for %%b in (!y!) do echo,!_%%b!
  12. ))>new.txt
  13. pause
复制代码

作者: rigg    时间: 2014-12-12 16:55

谢谢,非常好用
作者: aipo    时间: 2015-3-19 00:44

很好用 感谢
作者: lxh623    时间: 2018-11-5 10:22

请问,如果从第一行就插入,怎么修改代码?
谢谢!
作者: WHY    时间: 2018-11-5 15:42

回复 5# lxh623


    2楼脚本小改一下就可以了:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "间隔行数=2"
  4. for /f "delims=" %%a in (2.txt) do (
  5.         set /a LineA+=1
  6.         set "_!LineA!=%%a"
  7. )
  8. (for /f "delims=" %%a in (1.txt) do (
  9.         set /a "m=(LineB+=1)%%间隔行数 - 1, x+=^!m, y=(x-1)%%LineA+1"
  10.         if "!m!" == "0" for %%b in (!y!) do echo,!_%%b!
  11.         echo,%%a
  12. ))>new.txt
复制代码





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