[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请教各位老师,怎样批量查找指定字符并提取指定行?

文本条件
1,文件夹/n个文本(txt)
2,文本内容用特殊符号标注信息(如:“*” )
问题
1,怎样批量查找文本内容有一个符合条件 “*” 并提取第一行或者任意行保存为另一个文本?
2,怎样批量查找文本内容有两个或者多个符合条件 “*” 并提取第一行或者任意行保存为另一个文本?

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. powershell -NoProfile -ExecutionPolicy bypass ^
  7.     $lines=@(1);^
  8.     $list=@('*');^
  9.     [System.Collections.ArrayList]$s=@();^
  10.     $files=@(dir -r^|?{($_.Extension -eq '.txt') -and ($_ -is [System.IO.FileInfo])});^
  11.     for($i=0;$i -lt $files.length;$i++){^
  12.         $text=[IO.File]::ReadAllText($files[$i].FullName, [Text.Encoding]::Default);^
  13.         $n=0;^
  14.         for($j=0;$j -lt $list.length;$j++){^
  15.             if($text.Contains($list[$j])){$n++;};^
  16.         };^
  17.         if($list.length -eq $n){^
  18.             write-host $files[$i].FullName;^
  19.             $text=$text -split '\r?\n';^
  20.             for($j=0;$j -lt $lines.length;$j++){^
  21.                 if($lines[$j] -le $text.length){^
  22.                     [void]$s.add($text[$lines[$j]-1]);^
  23.                 };^
  24.            };^
  25.         };^
  26.     };^
  27.     [IO.File]::WriteAllLines('结果.log', $s, [Text.Encoding]::Default);^
  28.     write-host '%info%' -ForegroundColor green;
  29. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


    多谢!请你喝瓶水了。学习了。自己有找到了分为两次处理的代码。还是非常感谢!

TOP

回复 3# xuexibat

多行可以这样
  1. $lines=@(1,4,6,35);^
复制代码
多条件可以这样
  1. $list=@('*','wer','#','2@ee');^
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp


    多谢!学习了。

TOP

返回列表