找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22614|回复: 7

[文本处理] 【已解决】批处理怎么按照关键词 分割txt

[复制链接]
发表于 2020-8-28 14:22:07 | 显示全部楼层 |阅读模式
去搜了以下论坛的帖子,,,搜索了 关键词 分割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>
               





求大神帮忙。感激不尽。。。解决留下支付宝或者微信给与小小感谢。。。主要是感激
发表于 2020-8-28 14:28:47 | 显示全部楼层
把几个源文件打包上传或发网盘
 楼主| 发表于 2020-8-28 14:38:17 | 显示全部楼层
本帖最后由 8532200 于 2020-8-28 15:21 编辑

回复 2# zaqmlp


    已上传
发表于 2020-8-28 14:58:28 | 显示全部楼层
  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. }
复制代码

评分

参与人数 1技术 +1 收起 理由
8532200 + 1 感激不尽

查看全部评分

发表于 2020-8-28 15:10:47 | 显示全部楼层
说好的红包呢
 楼主| 发表于 2020-8-28 15:11:05 | 显示全部楼层
回复 4# zaqmlp


    已支付十元。。。真的感激不尽。目前实测没有任何问题。。。谢谢
发表于 2020-8-28 15:57:15 | 显示全部楼层
回复 1# 8532200
其实论坛里有类似的代码:
http://www.bathome.net/thread-8001-1-1.html
 楼主| 发表于 2020-8-28 15:58:39 | 显示全部楼层
回复 7# qixiaobin0715


    谢谢。。已经解决了。感谢回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:13 , Processed in 0.020565 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表