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

[文本处理] [已解决]根据一个文本中列出的字符串查找/提取另一个文本行首含有这些字符串的行

有txt文本A,内容格式如图

txt文本B,内容格式如图

根据B中的内容查询A中的内容,如果有匹配则导出对应A文本中的该行,并保存为txt文件C
1

评分人数

    • pcl_test: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 flyinnet9 于 2015-9-18 12:44 编辑

--------------
pcl大神已改,我也改改
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n1=请拖入文件A,然后回车确认:
  4. set /p n2=请拖入文件B,然后回车确认:
  5. for /f "tokens=1* delims=-" %%a in (%n1%) do set #%%a=%%b
  6. for /f %%c in (%n2%) do echo %%c----!#%%c!>>c.txt
复制代码

TOP

回复 2# flyinnet9


    谢谢,不好意思我表述有些错误
A文件内容是这样的

导出的时候,能不能不限制段数,只要是该行的内容就导出,不管其中有多少个 “----”
还有就是能不能不限制两个文件的的名字,比如直接将两个文件拖拽到图标上就自动执行

TOP

回复 3# shimuren


    已改

TOP

回复 4# flyinnet9


    嗯谢谢,
能不能不限制文件名呢?

TOP

回复 3# shimuren

拖曳文件到图标执行在你这个情况并不适合,因为选定文件时的顺序会导致不同的结果,除非分两次拖曳

TOP

回复 6# pcl_test


    分两次托拽也行 主要处理的这个数据太乱 ,改变名称容易忘记是哪类数据。
保存的C文件,直接用A文件名加后缀导出。
谢谢

TOP

回复 7# shimuren
先拖拽A文件到批处理文件图标,再按提示操作
  1. @echo off
  2. echo;A文件%~1
  3. set /p b=拖入B文件并按回车键
  4. findstr /g:"%b%" "%~1">"结果_%~n1.txt"
  5. ping /n 2 0 >nul
复制代码

TOP

回复 8# pcl_test

我修改成分两步拖入,但导出文件加后缀怎么实现呢?
  1. @echo off
  2. set /p a=拖入主文件文件并按回车键:
  3. set /p b=拖入对比文件文件并按回车键:
  4. findstr /g:"%b%" "%a%">"%a%.txt"
  5. ping /n 2 0 >nul
复制代码

TOP

  1. @echo off
  2. set /p a=拖入主文件文件并按回车键:
  3. set /p b=拖入对比文件文件并按回车键:
  4. for /f "delims=" %%i in ("%a%") do set p=%%~ni
  5. findstr /g:"%b%" "%a%">"result_%p%.txt"
  6. ping /n 2 0 >nul
复制代码
回复 9# shimuren

TOP

回复 9# shimuren

8楼有何不妥?

TOP

回复 11# pcl_test


    没  只是操作习惯问题,这阵子记得要先拖入a到图标上是第一步,过阵子就不记得了
改了下,思维就会按照提示去操作

谢谢大哥了

TOP

返回列表