标题: [文本处理] [已解决]批处理怎样将一个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行插入一个固定内容,但是我不懂得去改,还希望各位达人多多帮忙- @echo off&setlocal enabledelayedexpansion
- set/p file=拖入文件并回车:
- set/p count=输入每隔多少行插入:
- set/p blank=输入插入多少行:
- set n=&set m=
- (for /f "usebackq delims=" %%a in ("%file%") do (
- echo,%%a
- set/a n+=1,m=n%%count
- if !m! equ 0 for /l %%b in (1 1 %blank%) do echo 要插入的内容
- ))>new.txt
复制代码
作者: apang 时间: 2014-12-12 16:30
本帖最后由 apang 于 2014-12-12 23:34 编辑
- @echo off
- setlocal enabledelayedexpansion
-
- set "间隔行数=2"
-
- for /f "delims=" %%a in (2.txt) do (
- set /a LineA+=1
- set "_!LineA!=%%a"
- )
-
- (for /f "delims=" %%a in (1.txt) do (
- echo,%%a
- set /a "m=(LineB+=1)%%间隔行数, x+=^!m, y=(x-1)%%LineA+1"
- if "!m!" == "0" for %%b in (!y!) do echo,!_%%b!
- ))>new.txt
-
- 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楼脚本小改一下就可以了:- @echo off
- setlocal enabledelayedexpansion
-
- set "间隔行数=2"
-
- for /f "delims=" %%a in (2.txt) do (
- set /a LineA+=1
- set "_!LineA!=%%a"
- )
-
- (for /f "delims=" %%a in (1.txt) do (
- set /a "m=(LineB+=1)%%间隔行数 - 1, x+=^!m, y=(x-1)%%LineA+1"
- if "!m!" == "0" for %%b in (!y!) do echo,!_%%b!
- echo,%%a
- ))>new.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |