Board logo

标题: [网络连接] 批处理BAT如何批量检测网址是否有500错误? [打印本页]

作者: mvcc    时间: 2014-2-23 04:53     标题: 批处理BAT如何批量检测网址是否有500错误?



首先先多谢大家帮忙!

问题是这样的:

   有个文件叫   list.txt  里面的内容如下:   www.aaa.com
                                                          www.bbb.com
                                                          www.ccc.com  
                                                          www.ppp.com

               还有个文件 test.txt 内容如下: http://www.test.com/index.php

               现在我想要用用list.txt每一行轮流替换替换test.txt中www.test.com  (比如第一次就是http://www.aaa.com/index.php)
               想要每次替换后就用浏览器打开网址(http://www.aaa.com/index.php)并搜索是否有关键字 " 500错误 " 如果有就把网址 www.aaa.com 输出到 ip.txt 中, 并关闭浏览器,如果没有找到关键字也关点浏览器 并开始下一个测试.
               一直轮回执行完list.txt所以的网址.
作者: 522235677    时间: 2014-2-23 08:39

搜索是否有关键字 " 500错误 "
这个你没有实际的链接不好弄。http://www.aaa.com/index.php
作者: PowerShell    时间: 2014-2-23 10:56

powershell交流群 183173532
群友 `灵嫈` 帮助你写的powershell脚本,感谢
  1. $list=Get-Content 'C:\code\Powershell\223\list.txt'
  2. $test=Get-Content 'C:\code\Powershell\223\test.txt'
  3. for($i=0;$i -lt $list.count;$i++){
  4. $testUrl=$test.replace('www.test.com',$list[$i])
  5. $ie = new-object -com "InternetExplorer.Application"
  6. $ie.navigate($testUrl)
  7. $ie.Visible=$true
  8. $count=0
  9. while(($ie.readyState -ne 4) -and ($count -lt 60)){
  10. sleep(1)
  11. write-host '.' -nonewline
  12. }
  13. $doc=$ie.Document.body.outerText
  14. if (($doc -ne $null) -and $doc.contains('Error 500')){
  15. $list[$i] >> 'C:\code\Powershell\223\ip.txt'
  16. }
  17. $ie.quit()
  18. }
复制代码

作者: mvcc    时间: 2014-2-24 06:11

非常感谢 版主 !

作者: mvcc    时间: 2014-2-24 08:17

好像不能运行啊 ?版主
是批处理吗  开始那里是否少了代码?
求指教
作者: DAIC    时间: 2014-2-24 09:05

回复 5# mvcc


不是BAT,是PowerShell,你把代码保存为 C:\test.ps1
在 CMD 窗口里面执行:
powershell -f C:\test.ps1
作者: mvcc    时间: 2014-2-24 10:13

我刚刚安装了 powershell
但还是出错了

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>powershell -f c:\test.ps1
无法将条目“-f”识别为 cmdlet、函数、可运行程序或脚本文件。请验证该条目,然后重
试。
所在位置 行:1 字符: 3
+ -f  <<<< c:\test.ps1

C:\Documents and Settings\Administrator>powershell -f C:\test.ps1
无法将条目“-f”识别为 cmdlet、函数、可运行程序或脚本文件。请验证该条目,然后重
试。
所在位置 行:1 字符: 3
+ -f  <<<< C:\test.ps1
作者: PowerShell    时间: 2014-2-24 10:45

第一步,把下面这几条语句存成文本文件,如 c:\hello.ps1
第二步,开启powershell脚本运行权限:

用管理员权限!!!打开一个cmd,输入:  

"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy  RemoteSigned"

"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy  RemoteSigned"









第三步,运行powershell,运行脚本,输入:

"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"

在开启的powershell窗口中,输入    c:\hello.ps1

在cmd中 应该使用 "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -file c:\test.ps1
-f  当然不行。
作者: mvcc    时间: 2014-2-24 11:47

多谢各位,特别是版主,
让我学到新知识,对我来说还是比较困难,但最终还是运行了,谢谢!
只是运行后没有保存结果到 ip.txt 啊 ?怎么回事呢
作者: Batcher    时间: 2014-2-24 12:17

回复 9# mvcc


3楼第16行的 C:\code\Powershell\223\ip.txt 改成 C:\ip.txt 试试
作者: mvcc    时间: 2014-2-24 12:22

我之前就改成这样了C:\ip.txt

$list=Get-Content 'C:\list.txt'
$test=Get-Content 'C:\test.txt'

for($i=0;$i -lt $list.count;$i++){
        $testUrl=$test.replace('www.test.com',$list[$i])
        $ie = new-object -com "InternetExplorer.Application"
        $ie.navigate($testUrl)
        $ie.Visible=$true
        $count=0
        while(($ie.readyState -ne 4) -and ($count -lt 60)){
        sleep(1)
        write-host '.' -nonewline
        }
        $doc=$ie.Document.body.outerText
        if (($doc -ne $null) -and $doc.contains('Error 500')){
                $list[$i] >> 'C:\ip.txt'
        }
        $ie.quit()
}
作者: mvcc    时间: 2014-2-24 12:29

比如我把问题简单举例 list.txt 内容是

                                                 iphone.91.com
                                           product.pchome.net
                                           iphone.duowan.com
                                           mobile.zol.com.cn

我要找的关键字是iphone
作者: Batcher    时间: 2014-2-24 12:34

回复 12# mvcc


    11楼代码里面的 Error 500 改成 iphone 试试
作者: mvcc    时间: 2014-2-24 12:50

本帖最后由 mvcc 于 2014-2-24 12:52 编辑

那个我该了 就是没有保存
要不我具体举例  看看是否能在你们电脑运行 并保存到 ip.txt 现在我增加个点击首页 然后搜索关键字 iphone

有个文件叫   list.txt  里面的内容如下:   www.one020.com
                                                   www.xinguiwang.com
                                                         

               还有个文件 test.txt 内容如下: http://www.test.com/index.php

               现在我想要用用list.txt每一行轮流替换替换test.txt中www.test.com  (比如第一次就是http://www.one020.com/index.php)
               想要每次替换后就用浏览器打开网址(http://www.one020.com/index.php)  点击首页  并搜索是否有关键字 " iphone "
            如果有就把网址 www.one020.com 输出到 ip.txt 中, 并关闭浏览器,如果没有找到关键字也关点浏览器 并开始下一个测试.
               一直轮回执行完list.txt所以的网址.




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