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

[文本处理] [已解决]批处理怎样提取包含关键词的行并保存?

本帖最后由 abyssxx 于 2021-2-22 17:48 编辑

首先感谢大家!春节快乐!
需要处理a.txt文件
文件内容例如:

西瓜XXXXXX
fffffffff
西瓜苹果xxxxxxxx
bbbbbbbbbbbb
香蕉苹果xxxxxxxx
aaaaaaaaa
ccccccc
葡萄西瓜xxxxxxxxx
葡萄xxxxxxxx

需要分别提取包含 西瓜,苹果,香蕉, 葡萄的行 分别保存到  西瓜.txt 苹果.txt 香蕉.txt 葡萄.txt 中,
但是 西瓜.txt 苹果.txt 香蕉.txt 葡萄.txt 中不能有重复提取的行,如果直接提取就会因为某行里面有两个关键词提取了两次
思路可以提取第一个关键词 西瓜 保存到西瓜.txt
然后删除a.txt里面包含西瓜的行,然后继续提取包含苹果 保存到苹果.txt 然后删除a.txt里面包含苹果的行,继续提取后面的
最后还要保存一个文件,最终数据.txt里面的数据是剔除了关键词的,内容为
fffffffff
bbbbbbbbbbbb
aaaaaaaaa
ccccccc
看了半天教程写了一个好像是可以了,但是不保存空txt文件该怎么写?
  1. @echo off
  2. set targe=''
  3. setlocal enabledelayedexpansion
  4. for /f %%I in (关键词.txt) do (
  5. findstr "%%I" 数据.txt > "%%I".txt
  6. findstr /v "%%I" 数据.txt > b.txt
  7. copy b.txt 数据.txt
  8. )
  9. pause
复制代码

回复  abyssxx


    请举例说明“不保存空txt文件”是什么意思?
Batcher 发表于 2021-2-22 09:21



    就是有时候要处理的文本里面没有包含关键词的数据,输出的txt是空的,这种情况就不保存了

TOP

回复 3# Batcher


    就是有时候要处理的文本里面没有包含关键词的数据,输出的txt是空的,这种情况就不保存了

TOP

回复 4# qixiaobin0715


    可以用就是要这样的 谢谢

TOP

返回列表