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

[文本处理] BAT批量提取N个文本的关键词下一行内容,并保存到新的文本中

我想求批处理bat,可以实现以下操作
1、批量提取某文件夹下N个文本的两个关键词字段(比如,姓名 ,单位)各自的下一行内容,输出结果到另一新文本文件中(整合.txt)
2、最好输出成这种格式:
姓名:王某某  单位:某某办事处

我在网上搜索,有些代码只能输出指定行的内容,没办法输出指定内容下一行,望大神们不吝赐教!!

回复 1# 不会飞的鱼


    请选两个原始文本打包压缩传上来我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher

TOP

回复 3# 不会飞的鱼


请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "NamePre=DummyStr"
  4. set "CompPre=DummyStr"
  5. (for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  6.     echo %%a
  7.     set "OutputStr="
  8.     for /f %%b in ('type "%%a"') do (
  9.         if "%%b" equ "姓名" (
  10.             set "NamePre=%%b"
  11.         ) else if "!NamePre!" neq "DummyStr" (
  12.             set "OutputStr=姓名:%%b"
  13.             set "NamePre=DummyStr"
  14.         ) else if "%%b" equ "单位名称" (
  15.             set "CompPre=%%b"
  16.         ) else if "!CompPre!" neq "DummyStr" (
  17.             set "OutputStr=!OutputStr! 单位:%%b"
  18.             echo,!OutputStr!
  19.             set "CompPre=DummyStr"
  20.         )
  21.     )
  22. ))>"整合.log"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

多谢大神帮忙,非常好用,解决了几天的工作量

TOP

powershell
  1. $p = '姓名','单位名称'
  2. $path = "$PWD\*.txt"
  3. $Exclude ="$PWD\整合.txt"
  4. ((select-string -Path $path -Exclude $Exclude -pattern $p -Encoding default -SimpleMatch -context 0,1|% {$_.line + ':' + $_.context.postcontext})) -join ' '| Out-File '整合.txt'
复制代码

TOP

返回列表