标题: [文本处理] 【已解决】批处理怎么按照关键词 分割txt [打印本页]
作者: 8532200 时间: 2020-8-28 14:22 标题: 【已解决】批处理怎么按照关键词 分割txt
去搜了以下论坛的帖子,,,搜索了 关键词 分割txt 还是没有我要的
特地来求助大神
文件夹里面有很多子文件夹,里面都有txt
txt里面需要按照关键词分割
目前我用的是TXT杀手。可以完美解决但是不能处理批量文件
比如子文件夹里面有个txt,txt内容是
qwert <li><a href="http://www.imomoe.jp/view/5040.html" title="我的妹妹不可能那么可爱"><img src="http://pic.xiaomingming.org/FileUpload/1696.jpg" alt="我的妹妹不可能那么可爱" />
<p>我的妹妹不可能那么可爱<span>我的妹妹哪有这样就最终回</span></p></a><em style="filter:progidXImageTransform.Microsoft.Matrix(SizingMethod='auto expand',M11=0.7,M12=0.7,M21=-0.7,M22=0.7);">更新至16</em></li>
qwert <li><a href="http://www.imomoe.jp/view/4117.html" title="我的妹妹不可能那么可爱第二季"><img src="http://pic.xiaomingming.org/FileUpload/2679.jpg" alt="我的妹妹不可能那么可爱第二季" />
<p>我的妹妹不可能那么可爱第二季<span>我的妹妹哪有这么可爱</span></p></a><em style="filter:progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand',M11=0.7,M12=0.7,M21=-0.7,M22=0.7);">更新至16</em></li>
qwert <li><a href="http://www.imomoe.jp/view/4987.html" title="Angel Beats"><img src="http://pic.xiaomingming.org/FileUpload/1747.jpg" alt="Angel Beats" />
<p>Angel Beats<span>另一个结局</span></p></a><em style="filter:progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand',M11=0.7,M12=0.7,M21=-0.7,M22=0.7);">更新至15</em></li>
这个文本里面有三个关键词qwert。求按照这个关键词分割。分割后生成的文件名随意就可以了。
比如上面的例子分割后是三个txt,分别是1,,2,,,3.txt
其中1.txt打开后是这样
qwert <li><a href="http://www.imomoe.jp/view/5040.html" title="我的妹妹不可能那么可爱"><img src="http://pic.xiaomingming.org/FileUpload/1696.jpg" alt="我的妹妹不可能那么可爱" />
<p>我的妹妹不可能那么可爱<span>我的妹妹哪有这样就最终回</span></p></a><em style="filter:progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand',M11=0.7,M12=0.7,M21=-0.7,M22=0.7);">更新至16</em></li>
求大神帮忙。感激不尽。。。解决留下支付宝或者微信给与小小感谢。。。主要是感激
作者: zaqmlp 时间: 2020-8-28 14:28
把几个源文件打包上传或发网盘
作者: 8532200 时间: 2020-8-28 14:38
本帖最后由 8532200 于 2020-8-28 15:21 编辑
回复 2# zaqmlp
已上传
作者: zaqmlp 时间: 2020-8-28 14:58
- <# :
- cls
- @echo off
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
- pause
- exit
- #>
- $word="qwert";
- $path=$args[0].trimend('\');
- $newpath=$path+'\#result';
- $files=@(dir -liter $path -recurse|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
- $enc=[Text.Encoding]::Default;$regstr=[regex]::Escape($word)+'[\s\S]+?(?='+[regex]::Escape($word)+'|$)';
- for($i=0;$i -lt $files.length;$i++){
- write-host $files[$i].FullName;
- $newfolder=$newpath+'\'+$files[$i].Directory.Name;
- if(-not (test-path -liter $newfolder)){[void](md $newfolder -force);};
- $text=[IO.File]::ReadAllText($files[$i].FullName,$enc);
- $m=[regex]::matches($text,$regstr);$n=1;
- foreach($it in $m){
- $newfile=$newfolder+'\'+$files[$i].BaseName+'_'+$n.toString()+$files[$i].Extension;
- [IO.File]::WriteAllText($newfile, $it.groups[0].value, $enc);
- $n++;
- };
- }
复制代码
作者: zaqmlp 时间: 2020-8-28 15:10
说好的红包呢
作者: 8532200 时间: 2020-8-28 15:11
回复 4# zaqmlp
已支付十元。。。真的感激不尽。目前实测没有任何问题。。。谢谢
作者: qixiaobin0715 时间: 2020-8-28 15:57
回复 1# 8532200
其实论坛里有类似的代码:
http://www.bathome.net/thread-8001-1-1.html
作者: 8532200 时间: 2020-8-28 15:58
回复 7# qixiaobin0715
谢谢。。已经解决了。感谢回复
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |