标题: [系统相关] [已解决]获取外网IP的批处理为什么ECHO提示处于关闭状态或处于打开状态? [打印本页]
作者: lovealei 时间: 2011-8-22 19:28 标题: [已解决]获取外网IP的批处理为什么ECHO提示处于关闭状态或处于打开状态?
本帖最后由 lovealei 于 2011-8-25 09:08 编辑
下面这段代码 是获取外网IP并赋值给变量的- @echo off
- >html.vbs echo set http=createobject("Microsoft.XMLHTTP")
- >>html.vbs echo Set objfs=CreateObject("scripting.filesystemobject")
- >>html.vbs echo Set objf=objfs.CreateTextFile("html.txt",True)
- >>html.vbs echo url=" http://ip.loveroot.com/"
- >>html.vbs echo http.open "get",url,false
- >>html.vbs echo http.send
- >>html.vbs echo zhi=zhuanghuan(Http.responsebody)
- >>html.vbs echo s=(zhi)
- >>html.vbs echo objf.write s
- >>html.vbs echo Function zhuanghuan(vIn)
- >>html.vbs echo strReturn = ""
- >>html.vbs echo For i = 1 To LenB(vIn)
- >>html.vbs echo ThisCharCode = AscB(MidB(vIn,i,1))
- >>html.vbs echo If ThisCharCode ^< ^&H80 Then
- >>html.vbs echo strReturn = strReturn ^& Chr(ThisCharCode)
- >>html.vbs echo Else
- >>html.vbs echo NextCharCode = AscB(MidB(vIn,i+1,1))
- >>html.vbs echo strReturn = strReturn ^& Chr(CLng(ThisCharCode) * ^&H100 + CInt(NextCharCode))
- >>html.vbs echo i = i + 1
- >>html.vbs echo End If
- >>html.vbs echo Next
- >>html.vbs echo zhuanghuan = strReturn
- >>html.vbs echo End Function
- html.vbs
- for /f "tokens=4 skip=2 delims= " %%i in ('find /i "结果:" html.txt') do set ip=%%i
- echo 您的iP地址为
- echo %ip%
- del html.txt
- del html.vbs
- @echo off
- for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
- echo 内网IP
- echo %ip%
- pause
复制代码
单独存成一个文件执行是没有问题的,但如果加在一个批处理里面就提示 : ECHO 处于关闭状态 ,
此时
echo 您的iP地址为
echo %ip%
结果是
echo 您的iP地址为
echo ECHO处于关闭状态
作者: CrLf 时间: 2011-8-22 19:36
说明 %ip% 为空,当 echo 命令没有任何参数时将显示回显状态“ECHO处于关闭状态”或者“ECHO处于打开状态”之类的
作者: lovealei 时间: 2011-8-22 19:38
本帖最后由 lovealei 于 2011-8-22 19:40 编辑
终于发现问题所在了. 原来是用FIND和FINDSTR 的不同结果
作者: lovealei 时间: 2011-8-22 19:55
这个问题是完结了,但还有一个问题, 上面代码单独存为一个文件 find 不会报错,但是加到一个批处理中 就会找不到 find 提示:
"find" 不是内部命令或外命令,也不是可以......
这个问题困扰了我很久了,在没有办法的情况下 我只能把find.exe findstr.exe 等外部命令都复制到批处理目录下..........
作者: CUer 时间: 2011-8-22 20:35
回复 4# lovealei
那个批处理代码中是不是修改过path变量?
作者: lovealei 时间: 2011-8-25 09:07
本帖最后由 lovealei 于 2011-8-25 09:10 编辑
想起来了,的确设置了一个PATH变量,原来不能设置这个变量啊
作者: lovealei 时间: 2011-8-25 09:22
本帖最后由 lovealei 于 2011-8-25 09:27 编辑
我这样设置一下可以么? SET path=c:\windows\system32
原来的path 被和谐了,我必须设置一下,不然会找不到这些命令,
除了上面的路径,xp 2003 系统变量path 默认的路径还有那些?
作者: brqtpt007 时间: 2011-8-25 16:30
这个是用来做路由表的吗
作者: lovealei 时间: 2011-8-26 12:05
回复 8# brqtpt007
不是,只是为了得到外网IP
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |