[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样将一个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 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
复制代码

TOP

谢谢,非常好用

TOP

很好用 感谢

TOP

请问,如果从第一行就插入,怎么修改代码?
谢谢!

TOP

回复 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
复制代码
1

评分人数

TOP

返回列表