[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样获取ping命令成功后的IP值?

D:\>ping www.baidu.com
Pinging www.a.shifen.com [121.14.88.76] with 32 bytes of data:
Reply from 121.14.88.76: bytes=32 time=42ms TTL=56
Reply from 121.14.88.76: bytes=32 time=65ms TTL=56
Reply from 121.14.88.76: bytes=32 time=36ms TTL=56
Reply from 121.14.88.76: bytes=32 time=31ms TTL=56
Ping statistics for 121.14.88.76:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 31ms, Maximum = 65ms, Average = 43ms

假如上面的ping命令是成功的,则仅将121.14.88.76提取赋给%%a

  1. @echo off
  2. ping www.baidu.com >a.txt
  3. if errorlevel 0 (goto 成功) else (del a.txt &echo 连接失败)
  4. pause>nul
  5. :成功
  6. for /f "delims=[ tokens=2" %%i in (a.txt) do set b=%%i
  7. for /f "delims=] tokens=1" %%a in ("%b%") do echo %%a
  8. pause
复制代码

TOP

谢谢。测试可以了。
不生成文件的方法有吗

TOP

  1. @echo off
  2. set /p a=请输入IP或域名:
  3. ping %a% -n 1
  4. if "errorlevel" == "0" (echo %a%) else (echo ping不通)
  5. pause
复制代码

TOP

想的脑袋大了 不知该怎样把ping 的结果赋值给其它参数
等高手吧

TOP

  1. @echo off
  2. for /f "tokens=2 delims=[]" %%a in ('ping www.baidu.com^|findstr "Pinging"') do (
  3.     set IP=%%a
  4. )
  5. echo,%IP%
复制代码

TOP

回复 6楼 的帖子

学习了
估计GUN打瞌睡了 哈哈
少一个PAUSE

TOP

回复 7楼 的帖子

我的代码基本上不加pause

TOP

谢谢. 可以了。在外网用花生壳,内网用这个批处理获取外网IP,再自动连接外网的IP

TOP

返回列表