Board logo

标题: [文本处理] 批处理如何提取文本中列出的指定扩展名/后缀文件的路径以及文件夹/目录的路径? [打印本页]

作者: Rasm    时间: 2010-5-25 21:55     标题: 批处理如何提取文本中列出的指定扩展名/后缀文件的路径以及文件夹/目录的路径?

本帖最后由 pcl_test 于 2017-4-11 23:58 编辑

/adminmember.asp
/adminuser/
/guanli/
/member/
/admin/admin_6list.asp
/admin/Select_feedback.asp
/adsystem/index.asp
/asp/admin/login.asp
/new/admin_index.asp
/weihu/login.asp
/xtadmin/
/cgi_bin/
/bbs/admin_index.asp
/admin/data/qcdn_news.mdb
/database/NewCloud6.mdb
/admin/ydxzdate.asa
/data/db1.mdb
/data/12912.asp
/database/yiuwekdsodksldfslwifds.mdb

-------------------我想把 .asp 后缀的那行,全都提取出来到文本2,请问这个该如何以批处理实现??

-----我还想提取 文本中,以路径存在的

如:
/editorfiles/
/editorfile/
/editfile/
/weditor/
/weditorfile/
/weditorfiles/
/editor1/
/weditor1/
/adminusers/
/ldjadmin/
/databack/article.mdb
/sysopadmin/

请问如何提取??

二楼的朋友答案非常不错,findstr这条指令我朋友说以前还没遇到过呢,呵呵

[ 本帖最后由 Rasm 于 2010-5-25 22:54 编辑 ]
作者: hanyeguxing    时间: 2010-5-25 22:03

  1. findstr /e /l /i ".asp" 1.txt>2.txt
复制代码

作者: sgaizxt001    时间: 2010-5-25 22:32

我觉得对这样的强制使用/c:".asp"比较好一点
作者: Rasm    时间: 2010-5-25 22:37

原帖由 sgaizxt001 于 2010-5-25 22:32 发表
我觉得对这样的强制使用/c:".asp"比较好一点

太犀利了。刚朋友还发我他写的语句:

@echo off
for /f %%i in (a.txt) do echo %%i | find "asp"&&echo %%i>>b.txt
pause

------现在我还想提取 文本中,以路径存在的

如:
/editorfiles/
/editorfile/
/editfile/
/weditor/
/weditorfile/
/weditorfiles/
/editor1/
/weditor1/
/adminusers/
/ldjadmin/
/databack/article.mdb
/sysopadmin/

请问如何提取??原理与题目类似
作者: namejm    时间: 2010-5-25 22:44

以路径存在的字符串是怎么定义的?
问到了两个问题,要么拆分主题,要么把标题修改一下以囊括这两个问题。
作者: Rasm    时间: 2010-5-25 22:54

我还是整合在一起吧,比较好点
作者: sgaizxt001    时间: 2010-5-25 23:21

以路径存在的是什么意思?最后一个字符是“/”吗?那为什么会出现/databack/article.mdb
作者: Rasm    时间: 2010-5-25 23:24     标题: 回复 7楼 的帖子

最后一个字符是“/”,
文本中有 /databack/article.mdb是因为我想把一个文本中有asp,php,aspx,mdb后缀的文件全部独立提取出来,
刚第一个问题是提取了文本中 asp后缀的内容,现在想提取 独立提取 路径
作者: Rasm    时间: 2010-5-25 23:25

我的文本里是这样的,有很多后缀形式的内容在里面,而我现在就只想提取 路径

不知道大家理解了没,不过相信 2楼的朋友已经懂了
作者: sgaizxt001    时间: 2010-5-25 23:28

  1. findstr /e /l /i /c:"/" 1.txt >>tmp_.txt
复制代码
你看看这个是不是你想要的,这里把 / 换成其他任意后缀名的都可以提取,比如findstr /e /l /i /c:".asp" 1.txt >>tmp_.txt提取后缀是.asp的,或者findstr /e /l /i /c:".mdb" 1.txt >>tmp_.txt提取后缀是.mdb的。变通一下就可以

[ 本帖最后由 sgaizxt001 于 2010-5-25 23:33 编辑 ]
作者: hanyeguxing    时间: 2010-5-25 23:59

搜索行尾.asp或.php或.aspx或.mdb
  1. findstr /e /l /i ".asp .php .aspx .mdb" 1.txt>2.txt
复制代码
搜索行尾/
  1. findstr /e /i /c:"/" 1.txt>2.txt
复制代码

作者: Rasm    时间: 2010-5-26 08:35

嗯,效果很好,可问下,为什么提取路径,需要用到C盘的路径???/
第一个问题,提取后缀,为什么楼上的没用到 c:"/",而提取路径却用到了
作者: sgaizxt001    时间: 2010-5-26 21:58

/是特殊字符,用/c参数把他规定为普通字符去查找
作者: Rasm    时间: 2017-4-11 23:49

回复 11# hanyeguxing


    文本数据超过100MB,批处理就不行了,是否文本太大




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2