Board logo

标题: [文本处理] 【已解决】批处理怎么按照关键词 分割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

  1. <# :
  2. cls
  3. @echo off
  4. cd /d "%~dp0"
  5. powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
  6. pause
  7. exit
  8. #>
  9. $word="qwert";
  10. $path=$args[0].trimend('\');
  11. $newpath=$path+'\#result';
  12. $files=@(dir -liter $path -recurse|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  13. $enc=[Text.Encoding]::Default;$regstr=[regex]::Escape($word)+'[\s\S]+?(?='+[regex]::Escape($word)+'|$)';
  14. for($i=0;$i -lt $files.length;$i++){
  15.     write-host $files[$i].FullName;
  16.     $newfolder=$newpath+'\'+$files[$i].Directory.Name;
  17.     if(-not (test-path -liter $newfolder)){[void](md $newfolder -force);};
  18.     $text=[IO.File]::ReadAllText($files[$i].FullName,$enc);
  19.     $m=[regex]::matches($text,$regstr);$n=1;
  20.     foreach($it in $m){
  21.         $newfile=$newfolder+'\'+$files[$i].BaseName+'_'+$n.toString()+$files[$i].Extension;
  22.         [IO.File]::WriteAllText($newfile, $it.groups[0].value, $enc);
  23.         $n++;
  24.     };
  25. }
复制代码

作者: 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