标题: [文本处理] [已解决]请问批处理如何在多个文件的指定行插入一行文字? [打印本页]
作者: jzwtxp 时间: 2019-3-18 21:36 标题: [已解决]请问批处理如何在多个文件的指定行插入一行文字?
本帖最后由 jzwtxp 于 2019-4-20 23:58 编辑
比如插入原文的第一行和第二行之间,第二行换行,插入的那一行变成第二行。最好可以指定插入到第几行。
谢先
作者: Batcher 时间: 2019-3-18 22:19
“指定行”就是第一行下面?还是第一个“1.问题:”下面?
作者: jzwtxp 时间: 2019-3-18 22:26
回复 2# Batcher
一页文本的任意行,比如第二行。
作者: yhcfsr 时间: 2019-3-19 09:58
powershell- $spLine=2; #指定在第几行之后插入
- $str="要插入的内容"; #指定要插入的内容
- dir *.txt -r|%{
- [System.Collections.ArrayList] $content=[io.file]::ReadAllLines($_.FullName,[text.encoding]::Default);
- $content.Insert($spLine,$str)
- [io.file]::WriteAllLines($_.FullName,$content,[text.encoding]::Default)
- }
复制代码
作者: jzwtxp 时间: 2019-3-19 19:33
回复 4# yhcfsr
谢谢,如果有bat就更好了,这个我还读不懂,不能跟着学。
作者: zaqmlp 时间: 2019-3-19 19:53
本帖最后由 zaqmlp 于 2019-3-23 21:05 编辑
- @echo off
- title 互助互利,扫码头像,感谢赞助;有问题,加QQ956535081及时沟通
- cd /d "%~dp0"
- set "line=2"
- set "inserstr=xxxxxxxxxxx"
- for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
- echo;"%%a"
- (for /f "tokens=1* delims=:" %%b in ('type "%%a"^|findstr /n .*') do (
- echo;%%c
- if "%%b" equ "%line%" (echo;%inserstr%)
- ))>$tmp
- move /y $tmp "%%a"
- )
- pause
复制代码
作者: jzwtxp 时间: 2019-3-19 20:08
zaqmlp 发表于 2019-3-19 19:53
兄弟,这个不好使。还把文本里的内容给弄没了。
作者: zaqmlp 时间: 2019-3-19 20:21
回复 7# jzwtxp
bat不支持非ansi编码
把你的测试文本打包发出来
作者: jzwtxp 时间: 2019-3-19 20:34
回复 jzwtxp
bat不支持非ansi编码
把你的测试文本打包发出来
zaqmlp 发表于 2019-3-19 20:21
就是空白的文本,我只是想学习这个。
作者: zaqmlp 时间: 2019-3-19 20:37
回复 9# jzwtxp
既然是空白文本,哪里来的1,2行之间呀,根本连一行都没
作者: Batcher 时间: 2019-3-19 21:57
回复 7# jzwtxp
把你测试用的txt文件和bat文件打包压缩传上来我看下是什么原因
作者: jzwtxp 时间: 2019-3-22 22:45
回复 11# Batcher
]
作者: Batcher 时间: 2019-3-23 09:55
回复 12# jzwtxp
6楼代码第9行改成 echo;%%c 试试
作者: jzwtxp 时间: 2019-4-20 23:51
回复 13# Batcher
谢谢大神,好用了。
作者: jzwtxp 时间: 2019-4-20 23:52
回复 6# zaqmlp
谢谢,按照管理说的修改以后好用了。
作者: 1973435288 时间: 2022-3-8 01:24
回复 6# zaqmlp
可以指定多行吗大佬
作者: 1973435288 时间: 2022-3-8 01:27
回复 13# Batcher
请问可以指定多行吗
作者: qixiaobin0715 时间: 2022-3-8 09:22
回复 16# 1973435288
可以。比如要指定2、4、6、8、10行。修改6楼代码
第3行修改为:复制代码
第10行修改为:- for %%i in (%line%) do if "%%b" equ "%%i" (echo;%inserstr%)
复制代码
作者: 5i365 时间: 2022-3-8 10:15
回复 4# yhcfsr
大侠好, 能实现, 在包含指定字符的行,下方插入吗? 例如, 如果某行包含 司机 二字 ,则在该行的下方插入 辛苦了 三个字, 包含 司机 的行可能会N个
作者: 1973435288 时间: 2022-3-8 18:29
回复 18# qixiaobin0715
感谢大佬
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |