标题: [文本处理] BAT批量提取N个文本的关键词下一行内容,并保存到新的文本中 [打印本页]
作者: 不会飞的鱼 时间: 2020-9-24 17:37 标题: BAT批量提取N个文本的关键词下一行内容,并保存到新的文本中
我想求批处理bat,可以实现以下操作
1、批量提取某文件夹下N个文本的两个关键词字段(比如,姓名 ,单位)各自的下一行内容,输出结果到另一新文本文件中(整合.txt)
2、最好输出成这种格式:
姓名:王某某 单位:某某办事处
我在网上搜索,有些代码只能输出指定行的内容,没办法输出指定内容下一行,望大神们不吝赐教!!
作者: Batcher 时间: 2020-9-24 17:42
回复 1# 不会飞的鱼
请选两个原始文本打包压缩传上来我试试
作者: 不会飞的鱼 时间: 2020-9-25 08:57
回复 2# Batcher
作者: Batcher 时间: 2020-9-25 14:36
回复 3# 不会飞的鱼
请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ- @echo off
- setlocal enabledelayedexpansion
- set "NamePre=DummyStr"
- set "CompPre=DummyStr"
- (for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
- echo %%a
- set "OutputStr="
- for /f %%b in ('type "%%a"') do (
- if "%%b" equ "姓名" (
- set "NamePre=%%b"
- ) else if "!NamePre!" neq "DummyStr" (
- set "OutputStr=姓名:%%b"
- set "NamePre=DummyStr"
- ) else if "%%b" equ "单位名称" (
- set "CompPre=%%b"
- ) else if "!CompPre!" neq "DummyStr" (
- set "OutputStr=!OutputStr! 单位:%%b"
- echo,!OutputStr!
- set "CompPre=DummyStr"
- )
- )
- ))>"整合.log"
复制代码
作者: 不会飞的鱼 时间: 2020-9-26 13:40
多谢大神帮忙,非常好用,解决了几天的工作量
作者: terse 时间: 2020-9-27 08:19
powershell- $p = '姓名','单位名称'
- $path = "$PWD\*.txt"
- $Exclude ="$PWD\整合.txt"
- ((select-string -Path $path -Exclude $Exclude -pattern $p -Encoding default -SimpleMatch -context 0,1|% {$_.line + ':' + $_.context.postcontext})) -join ' '| Out-File '整合.txt'
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |