标题: [文本处理] [已解决]根据一个文本中列出的字符串查找/提取另一个文本行首含有这些字符串的行 [打印本页]
作者: shimuren 时间: 2015-9-18 10:48 标题: [已解决]根据一个文本中列出的字符串查找/提取另一个文本行首含有这些字符串的行
有txt文本A,内容格式如图
txt文本B,内容格式如图
根据B中的内容查询A中的内容,如果有匹配则导出对应A文本中的该行,并保存为txt文件C
作者: flyinnet9 时间: 2015-9-18 10:55
本帖最后由 flyinnet9 于 2015-9-18 12:44 编辑
--------------
pcl大神已改,我也改改- @echo off
- setlocal enabledelayedexpansion
- set /p n1=请拖入文件A,然后回车确认:
- set /p n2=请拖入文件B,然后回车确认:
- for /f "tokens=1* delims=-" %%a in (%n1%) do set #%%a=%%b
- for /f %%c in (%n2%) do echo %%c----!#%%c!>>c.txt
复制代码
作者: shimuren 时间: 2015-9-18 11:21
回复 2# flyinnet9
谢谢,不好意思我表述有些错误
A文件内容是这样的
导出的时候,能不能不限制段数,只要是该行的内容就导出,不管其中有多少个 “----”
还有就是能不能不限制两个文件的的名字,比如直接将两个文件拖拽到图标上就自动执行
作者: flyinnet9 时间: 2015-9-18 11:28
回复 3# shimuren
已改
作者: shimuren 时间: 2015-9-18 11:36
回复 4# flyinnet9
嗯谢谢,
能不能不限制文件名呢?
作者: pcl_test 时间: 2015-9-18 11:42
回复 3# shimuren
拖曳文件到图标执行在你这个情况并不适合,因为选定文件时的顺序会导致不同的结果,除非分两次拖曳
作者: shimuren 时间: 2015-9-18 11:50
回复 6# pcl_test
分两次托拽也行 主要处理的这个数据太乱 ,改变名称容易忘记是哪类数据。
保存的C文件,直接用A文件名加后缀导出。
谢谢
作者: pcl_test 时间: 2015-9-18 12:28
回复 7# shimuren
先拖拽A文件到批处理文件图标,再按提示操作- @echo off
- echo;A文件%~1
- set /p b=拖入B文件并按回车键
- findstr /g:"%b%" "%~1">"结果_%~n1.txt"
- ping /n 2 0 >nul
复制代码
作者: shimuren 时间: 2015-9-18 13:45
回复 8# pcl_test
我修改成分两步拖入,但导出文件加后缀怎么实现呢?- @echo off
- set /p a=拖入主文件文件并按回车键:
- set /p b=拖入对比文件文件并按回车键:
- findstr /g:"%b%" "%a%">"%a%.txt"
- ping /n 2 0 >nul
复制代码
作者: flyinnet9 时间: 2015-9-18 13:50
- @echo off
- set /p a=拖入主文件文件并按回车键:
- set /p b=拖入对比文件文件并按回车键:
- for /f "delims=" %%i in ("%a%") do set p=%%~ni
- findstr /g:"%b%" "%a%">"result_%p%.txt"
- ping /n 2 0 >nul
复制代码
回复 9# shimuren
作者: pcl_test 时间: 2015-9-18 13:50
回复 9# shimuren
8楼有何不妥?
作者: shimuren 时间: 2015-9-18 14:00
回复 11# pcl_test
没 只是操作习惯问题,这阵子记得要先拖入a到图标上是第一步,过阵子就不记得了
改了下,思维就会按照提示去操作
谢谢大哥了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |