标题: [网络连接] 批处理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脚本,感谢- $list=Get-Content 'C:\code\Powershell\223\list.txt'
- $test=Get-Content 'C:\code\Powershell\223\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:\code\Powershell\223\ip.txt'
- }
- $ie.quit()
- }
复制代码
作者: 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |