中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 23:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 脚本中打开网页并返回是否打开的信息到txt文件 查看 1,320 回复 6
楼 主 脚本中打开网页并返回是否打开的信息到txt文件 发表于 2006-08-16 16:04 ·  IANA 局域网IP(Private-Use)
初级用户
积分 52
发帖 14
注册 2006-08-07 11:43
19年会员
UID 60018
状态 离线
在脚本中写

start http://www.163.com

请问执行打开网页后怎样把一个执行成功与否的信息返回到e:/niuji/1.txt


不能打开网页:
1.txt的内容为:FAILED

能打开网页:
1.txt的内容为:SUCCESS

该怎么做呢?
苦恼~
谢谢
2 发表于 2006-08-16 16:52 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  用判断对应的cookies文件修改时间这个方法可能行得通。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-08-16 17:06 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
是否打开 究竟具体指什么呢?能访问这个地址?地址有效?网络通常,还是其他的?影响网页验证的原因很多,还有很多是和IE有关的。

如果楼主的问题是是否IE打开了这个页面,在 Temporary Internet Files下面去找相关临时文件是个好注意!

[ Last edited by electronixtar on 2006-8-16 at 17:11 ]

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
4 发表于 2006-08-16 18:58 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  如果把能否打开网页理解为是否能把网络上的网页在本地打开,那么,以下代码可能会比较有用(测试某些网站时判断失误,比如http://www.eyou.com/)。


@echo off
:: 当cookie文件创建之后的下一秒是下一分钟的话
:: 这段代码会出错,不过如此低的几率还是可以忍受
if not exist e:\niuji md e:\niuji>nul 2>nul
if exist E:\niuji\1.txt del /q E:\niuji\1.txt
setlocal enabledelayedexpansion
set input=
set input=http://www.163.com
start %input%
for /f "delims=. tokens=1*" %%i in ("%input%" do set site=%%j
for /f "delims=. tokens=1*" %%i in ("%site%" do set net=%%i
set root="%userprofile%\cookies"
pushd %root%
set num=0
:loop
set /a num+=1
ping 127.1 -n 3 >nul 2>nul
if %num% gtr 4 echo FAILED>e:\niuji\1.txt && goto end
if not exist %username%@*%net%*.txt goto loop
for %%i in (%username%@*%net%*.txt) do (
find /i "%site%" %%i>nul 2>nul && (
if %time:~0,2% lss 10 (
if "%date% 0%time:~1,4%"=="%%~ti" (echo SUCCESS>e:\niuji\1.txt) else (echo FAILED>e:\niuji\1.txt)
goto end
)
if %time:~0,2% geq 10 (
if "%date% %time:~0,5%"=="%%~ti" (echo SUCCESS>e:\niuji\1.txt) else (echo FAILED>e:\niuji\1.txt)
goto end
)
)
)
:end
popd
start e:\niuji\1.txt


[ Last edited by namejm on 2006-8-17 at 02:46 ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-08-17 09:02 ·  IANA 局域网IP(Private-Use)
初级用户
积分 52
发帖 14
注册 2006-08-07 11:43
19年会员
UID 60018
状态 离线
对的,我的意思就是本地打开!
不好意思,我一开始没表达清楚,给大家添麻烦了
6 发表于 2006-08-17 09:23 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
on error resume next

bag="http://www.163.com"

Set pipe=CreateObject("MSXML2.XMLHTTP")
pipe.open "GET",bag,false
pipe.send

wscript.echo pipe.statusText&vbcr&pipe.status

为什么不用脚本来解决这个问题呢?我觉得脚本在这个方面要比批处理效率高,而且准确性要强,我只给了一段代码,应该够用了,其他的自行修改
7 发表于 2006-08-17 11:02 ·  中国 四川 成都 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
我只会用bat,不会用vbs,呵呵。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转: