Board logo

标题: [文本处理] 批处理命令findstr返回结果为何出错? [打印本页]

作者: zahirll    时间: 2012-8-26 04:05     标题: 批处理命令findstr返回结果为何出错?

本帖最后由 zahirll 于 2012-8-26 21:03 编辑

1.txt里面的内容是:baidu.com
                            www.xxx.com
我想要达到搜索有结果的就返回域名到2.txt
像上面两个域名baidu.com肯定是有结果的,www.xxx.com是无结果的。
遇到两个问题就是不管有没搜到结果都返回到2.txt
还有一个就是 findstr行2太长。。
请高手帮我修改一些,万分感谢。
  1. @echo off
  2. more +9 "%~f0" >GetUrlText.vbs
  3. type nul >2.txt
  4. for /f %%a in (1.txt) do (
  5.     echo 正在检测:%%a
  6.     cscript //nologo GetUrlText.vbs "http://baidu.com/ns?word=site:%%a" | findstr "不存在" && >>2.txt echo,%%a
  7. )
  8. goto :eof
  9. strURL=WScript.Arguments(0)
  10. WScript.Echo strURL
  11. Set objXmlHttp = CreateObject("Microsoft.XMLHTTP")
  12. objXmlHttp.Open "GET",strURL,0
  13. objXmlHttp.Send()
  14. Set objStream = CreateObject("ADODB.Stream")
  15. objStream.Mode = 3
  16. objStream.Type = 1
  17. objStream.Open()
  18. objStream.Write(objXmlHttp.responsebody)
  19. objStream.Position = 0
  20. objStream.Type = 2
  21. objStream.Charset = "utf-8"
  22. strText = objStream.Readtext
  23. WScript.Echo strText
复制代码

作者: apang    时间: 2012-8-26 10:16

  1. @echo off
  2. set "url=http://www.baidu.com/s?tn=baidusite&word=site"
  3. more +9 "%~f0" >a.vbs
  4. for /f %%a in (1.txt) do (
  5.   echo 正在检测:%%a
  6.   cscript //nologo a.vbs "%url%:%%a"|find "抱歉,没有找到">nul||>>2.txt echo %%a
  7. )
  8. del a.vbs&pause&goto :eof
  9. strURL=WScript.Arguments(0)
  10. WScript.Echo strURL
  11. Set objXmlHttp = CreateObject("Microsoft.XMLHTTP")
  12. objXmlHttp.Open "GET",strURL,0
  13. objXmlHttp.Send()
  14. Set objStream = CreateObject("ADODB.Stream")
  15. objStream.Mode = 3
  16. objStream.Type = 1
  17. objStream.Open()
  18. objStream.Write(objXmlHttp.responsebody)
  19. objStream.Position = 0
  20. objStream.Type = 2
  21. objStream.Charset = "utf-8"
  22. strText = objStream.Readtext
  23. WScript.Echo strText
复制代码

作者: zahirll    时间: 2012-8-26 14:58

代码有点问题,有些存在上面关键字的也输出了




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