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

[文本处理] 在文本中取每行间部分字符并保存到新文件的批处理

001) www.91xinyu.com   新网站
002) www.Abniao.com    新网站
003) www.bysj999.com   新网站
004) www.bbf.net   新网站
005) www.eslylam.cn   新网站  
006) www.gmeeting.com   新网站  
有很多网站, 想删除001) 和.com还有之后的“新网站”, 比如第一行,只想留下91xinyu   第二行只要Abniao
练手的机会,可惜俺不懂!期待高手走过。

[ 本帖最后由 3887676 于 2009-6-7 01:04 编辑 ]

总之谢谢大家了   21的代码够用了

TOP

非常同意22楼“随风”版主。楼主要处理的域名太没有规律了,很难做到完美提取。26楼的代码我是看不懂,只是测试了一下,大部分没问题。但如果哪个心血来潮把域名搞成类似“a.com.abc.com”的形式同样提取不到位。

TOP

033) lts88.com  新网站
034) www.coffice.com  
www.cawa.org.cn
www.99sj.cn.cn
www.abc.com.cn
aa.bb.cc.dd.abc.cn.cn
1234556.abc.com
bbs.abc.org.cn
*.1223.abc.com.cn
abc.cn
  1. @echo off
  2. set "domain=cn|com|org|net|edu|tw|us" 还有其他域名按此格式添加
  3. mshta "javascript:fso=new ActiveXObject('Scripting.FileSystemObject'); s=fso.OpenTextFile('a.txt').ReadAll(); fso.OpenTextFile('b.txt',2,true).Write ( s.replace(/(\w+)(?:\.(?:%domain%))+.*/g,'$1').replace(/.*[. ]/g,'') ); close();"
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

试试这个,手机发帖,没测试

把文本保存成test.txt,运行代码后,生成的list.txt就是你想要的。

  1. @echo off
  2. for /f "delims=. tokens=2" %%i  in (test.txt) do (
  3. echo %%i>>list.txt
  4.    )
  5. pause>nul
复制代码

TOP

我理解是楼主想提取域名中的主机名。如
www.abc.com.cn
aa.bb.cc.dd.abc.cn.cn
1234556.abc.com
bbs.abc.org.cn
*.1223.abc.com.cn
abc.cn

提取都是abc.

TOP

方便的话,楼主还是把文件内容贴全了吧。想见识一下都有什么样的域名。

TOP

说句实话,我到现在仍不知道楼主是要按什么规律提取文本内容,各位是依据什么写的代码,能给点提示吗?楼主10楼的例子更是让人摸不着头脑。
比如:023) 0n.com.cn  新网站 要求得到的结果是:0nime
到底哪些部分是应该要抛弃的?
如果只是要抛弃最后的.com 等后缀名很好办,主要是如何抛弃前面的内容不知道规律。

[ 本帖最后由 随风 于 2009-6-9 13:33 编辑 ]
技术问题请到论坛发帖求助!

TOP

呵,还有这么怪的域名后缀么。试试下边这个,国内域名后缀应该不会超过这个范围吧?,不够可以再加,会影响点效率.
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>url_tmp.txt
  3. for /f "tokens=2 delims=) " %%a in (1.txt) do (
  4. set url=%%~na
  5. for %%i in (.com .net .cn .org .cc .hk .tw .asia .me .tel .me .biz .tv .mobi) do set url=!url:%%i=!
  6. for /f "tokens=* delims=*" %%b in (".!url!") do set str=%%~xb&echo !str:.=!>>url_tmp.txt
  7. )
  8. start url_tmp.txt
复制代码

[ 本帖最后由 inittab 于 2009-6-9 12:40 编辑 ]

TOP

十六楼的遇到www.cawa.org.cnwww.99sj.cn.cn就不能正常获取   麻烦再帮忙测测

TOP

哈哈,大家真热情,我明天再认真检查一下,再次谢谢了

TOP

呵,我真是马虎。没测试就放上来了。丢失的是两行带*号,已修正。

TOP

提示:16楼的代码丢失了两行。

TOP

对13楼朋友提到的问题改进,加强通用性
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>url_tmp.txt
  3. for /f "tokens=2 delims=) " %%a in (1.txt) do (
  4. set url=%%~na&set url=!url:.com=!&set url=!url:.net=!
  5. for /f "tokens=* delims=*" %%b in (".!url!") do set str=%%~xb&echo !str:.=!>>url_tmp.txt
  6. )
  7. start url_tmp.txt
复制代码


呵,楼下的问题已改正。不知还有没有没考虑到的情况

[ 本帖最后由 inittab 于 2009-6-7 19:09 编辑 ]

TOP

回复 14楼 的帖子

等等,没有考虑全
如果是 bbb.aaa.com.cn, bbb.ccc.net.cn
楼主是取 aaa  ccc 吗?

如是,12楼的正则是正确的。

TOP

返回列表