如何便捷的分割TXT文件

如何便捷的分割TXT文件,第1张

你可以自己写一个小程序用VBS就可以,不过效率可能会比较低...

把以下内告并容复制到记事本之后另存为aa.vbs(保存类型—所有文件),之后把这个aa.vbs文件复制到和你要分割的文本文件的同一目录,双击运行即可(如果文件过多或过大,速度会很慢,请测试后使用)

set ws=createobject("wscript.shell")

set fso=createobject("scripting.filesystemobject")

set folder=fso.getfolder(ws.currentdirectory)

set files=folder.files

for each file in files

if right(file,3)="txt" then

call fenge(file)

end if

next

msgbox "文件分割完成!",48+4096,"系统提示"

sub fenge(a)

if not fso.FolderExists(folder &"\分咐宏割后的文件") then fso.createfolder(folder &"\分衡友册割后的文件")

jbm=fso.getbasename(a):i=0

set fl=fso.opentextfile(a,1)

do while fl.atendofstream<>true

n=fl.readline

if lenb(s)/1000<50 then

s=s &n &vbcrlf

else

set wenjian=fso.createtextfile(folder &"\分割后的文件\" &jbm &"(" &i &").txt")

wenjian.write s

wenjian.close

s=n:i=i+1

end if

loop

fl.close

end sub

处理后的每个文本中的内容都以图中黄框中的样式保逗穗渣存,保存的文件名以绿框中的内容命名,对吗?族肢

能否提供几个文本供我分析?因为我就怕编码或换行的问题,导致最终处理失败或出现山悄乱码问题。如果可以,请通过网盘分享给我。

不清楚你的实际文件/情况,仅以问题中的样例/说明为据

复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行<# :

cls

@echo off

rem 将一个txt文本文件里的内容按照含有指定特征字符串的行及其下面的多行内容分割成改唯多个小的txt文件

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title 核茄培%#% +%$%%$%/%@% %z%

cd 纳基/d "%~dp0"

powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"

echo%#% +%$%%$%/%@% %z%

pause

exit

#>

$txtfile='.\yourfile.txt'

if(-not (test-path -liter $txtfile)){Write-host ('"'+$txtfile+'" not found')exit}

$enc=[Text.Encoding]::Default

$text=[IO.File]::ReadAllLines($txtfile, $enc)

$dic=New-Object 'System.Collections.Generic.Dictionary[string,Object]'

$newfile=''

for($i=0$i -lt $text.count$i++){

    if($text[$i].Contains('>sp|')){

        $newfile='.\'+$text[$i].split('|')[1]+'.txt'

        if(($newfile -ne '') -and (-not $dic.ContainsKey($newfile))){

            [System.Collections.ArrayList]$a=@()

            $dic.add($newfile,$a)

        }

    }

    if($dic.ContainsKey($newfile)){[void]$dic[$newfile].add($text[$i])}

}

foreach($k in $dic.Keys){

    write-host $k

    [IO.File]::WriteAllLines($k, $dic[$k], $enc)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/tougao/12172804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存