找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24946|回复: 7

[网络连接] 关于用批处理解析网址的一点问题

[复制链接]
发表于 2013-9-25 16:48:26 | 显示全部楼层 |阅读模式
如题,输入网址后,用批处理返回相应IP。代码如下
  1. @echo off
  2. echo 输入网址以获取IP地址,或输入exit退出
  3. echo.
  4. echo 要查询的网址:
  5. set /p ST= http://
  6. if /i "%ST%"=="exit" exit
  7. for /f "skip=1 tokens=2 delims=, " %%i in ('nslookup -vc %ST% 8.8.8.8 2^>nul^|find /i "Addr"') do echo %%i
  8. pause
复制代码
代码运行正常,不过由于启用了IPv6,返回的通常都是IPv6的地址。于是将代码修改如下,增加了-qt=a开关指定只获取IPv4地址
  1. @echo off
  2. echo 输入网址以获取IP地址,或输入exit退出
  3. echo.
  4. echo 要查询的网址:
  5. set /p ST= http://
  6. if /i "%ST%"=="exit" exit
  7. for /f "skip=1 tokens=2 delims=, " %%i in ('nslookup -vc -qt=a %ST% 8.8.8.8 2^>nul^|find /i "Addr"') do echo %%i
  8. pause
复制代码
然后就无法输出任何IP地址了……求解
发表于 2013-9-25 18:00:20 | 显示全部楼层
  1. @echo off
  2. set /p c=域名http://
  3. for /f "tokens=2 delims=[]" %%i in ('ping %c% -n 1 -w 1') do (set IP=%%i)
  4. echo %ip%
  5. pause
复制代码
直接在从ping返回的结果截取出来不是更好?
发表于 2013-9-25 20:48:10 | 显示全部楼层
-qt=a
在等号前面加个转义字符试试
-qt^=a
 楼主| 发表于 2013-9-26 23:05:17 | 显示全部楼层
回复 2# 522235677


    你看懂这个干什么用了吗?提示:-vc开关指定使用TCP方式请求DNS
 楼主| 发表于 2013-9-26 23:08:03 | 显示全部楼层
回复 3# Batcher


    可以了,谢谢
    不过还是想问下为什么呢?批处理学的不多不明所以,求赐教
发表于 2013-9-27 08:43:00 | 显示全部楼层
回复 5# zypA13510


等号在那个地方的作用是命令分隔符,跟空格的作用相同。
如果要作为普通的等号来使用,就需要转义。
发表于 2013-9-27 16:03:17 | 显示全部楼层
回复 4# zypA13510


    没仔细看
 楼主| 发表于 2013-9-28 00:02:17 | 显示全部楼层
回复 7# 522235677


    请上网搜索G{和谐}F【社会】W,你懂的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 14:46 , Processed in 0.016741 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表