1. 首页 > 科技

批处理修改文本文档指定行的内容,在指定行后面添加一行?

批处理修改文本文档指定行的内容,在指定行后面添加一行?

bat如何修改已文本文件中的某一行

@echo off

set cc=1234

(for /f "tokens=*" %%i in (a.ini) do echo %%i|findstr /ib cc=&&echo cc=%cc%||echo %%i)>temp.ini

move /y temp.ini a.ini

如何使用批处理读取文本文档的固定行的内容并顺序添加到一个新的文本文档中?

'保存为vbs类型文件

'以下2种方法只需0~2毫秒处理完.所以只提供最快的一种方法

On Error Resume Next '防止整个程序意外中断

dim fso,f,read,file,sread,path,save,savefolder '声明变量

set fso=createobject("scripting.filesystemobject") '创建对象fso

path="d:\man"

set f=fso.getfolder("D:\man") '要读取的路径

savefolder=path&"\new folder" '保存的路径

save=savefolder&"\New.txt" '保存的文件

if dir(savefolder)="" then fso.createfolder savefolder '判断保存的文件夹是否存在.不存在则新建一个文件夹

'分割线

'----------------------------------------------------------

'方法1,去掉每行注释符号',就可以使用了.不过要注释掉方法2,只能任选其一

'for each i in f.files 'for循环查找目标路径的文件

'if fso.getextensionname(i)="txt" then '判断后缀名是否是txt类型文件

'read=split(fso.opentextfile(i).readall,vbcrlf) '读取全文并分割

'mkfile save&"/",read(1) '截取第2行,并创建文件到目标路径

'end if

'next

'方法2.方法2速度可能会比1快点.只是不容易看出来而已..

for each i in f.files 'for循环查找目标路径的文件

if fso.getextensionname(i)="txt" then '判断后缀名是否是txt类型文件

read=split(fso.opentextfile(i).readall,vbcrlf) '读取全文并分割

readstr=readstr&read(1)&vbcrlf '把要截取的内容储存到变量里

end if

next

readstr=left(readstr,len(readstr)-2) '删除文件末尾空行

mkfile save,readstr '写入并创建文件到目标路径

'-----------------------------------------------------------

'分割线

Function mkFile(ByVal File, ByVal Writes) '自定义函数mkfile(创建文件函数)

On Error Resume Next '发生错误时忽略中断,此代码是防止函数意外中断,和第一行不同.

If Right(File, 1) = "/" Then '判断字符串倒数第一个字是否有符号"/".如果有则....

fs = Replace(File, "/", "") '删除符号"/"

if dir(fs)="" then '判断文件是否存在,不存在则...

fso.Createtextfile(fs).Write Writes '新建文件,写入内容

exit function '退出函数

else '如果文件存在则...

sread = fso.opentextfile(fs).readall '读取目标文件...

If Right(sread, 2) <> vbCrLf And Len(sread) > 0 Then sread = sread & vbCrLf '判断第一行是否有回车符.没有则写入回车符

fso.Createtextfile(fs).Writeline sread & Writes '创建文件并写入内容到文件(追加新内容到文本末尾)

end if

else ' 如果字符串倒数第一个字不是符号"/",则...

fso.Createtextfile(File).Write Writes '创建文件并写入内容到文件(不追加新内容到文本末尾)

End If

End Function '函数结束

public function dir(byval exist) '判断文件(夹)存在函数

if fso.folderexists(exist&"\") then ' 判断文件夹是否存在

if fso.folderexists(exist) then dir=fso.getfolder(exist) else dir=""

else

if fso.fileexists(exist) then dir=fso.getfile(exist) else dir="" ' 判断文件是否存在

end if

end function

'==========================================

rem 分割线

'==========================================

rem 保存为bat类型文件

rem 方法1, 1秒~1.4秒处理完

@echo off&cd/d "d:\man"&md "New folder"

for /f "delims=" %%1 in ('dir /b "*.txt"')do (

for /f "tokens=2 delims=:" %%2 in ('type "%%1"^|findstr/n "."^|findstr "2"')do echo %%2>>"New folder\New.txt"

)

rem 2个for循环截取各个文件内容.一个负责查找文件,一个负责读取文件.给文件快速分行,快速确认目标行数,执行速度稍差.,是逐个文件读取,逐个输出

rem 方法2, 200~400毫秒处理完

@echo off&cd/d "d:\man"&md "New folder"

setlocal enabledelayedexpansion

for /f "delims=" %%1 in ('dir /b "*.txt"')do (set a=0

for /f "delims=" %%2 in ('type "%%1"')do (set/a a+=1

if !a!==2 echo %%2>>"New folder\New.txt"

))

rem 2个for循环截取各个文件内容.一个负责查找文件,一个负责读取文件.上面的!a!==2是第2行的意思,把每个文件第2行的内容输出到目标文件里,是逐个文件读取,逐个输出.

=====================

以上代码都是最快的算法

批处理 如何给文本文档内容每行后加上固定内容?

假设此文档名称a.txt

@echo off

set /p "end=请输入需要添加的字符串:"

(for /f "delims=" %%a in (a.txt) do echo,%%a%end%)>b.txt

start b.txt

怎样用批处理在多个文本的最后一行或指定行增加文字

for %%i in (*.txt) do echo "输入你想添加的内容" >>%%i

这个只能在所有的TXT文件的最后一行添加你想要添加的内容,往前面或中间加的话可能比较复杂点...懒得想了