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

[文件操作] 批处理如何提取nslookup域名解析结果中的ip地址、名称并按指定格式输出

求助:代码实现不了效果,编程实在不会
1、文本文件List.txt内容如下:
220.181.108.184
220.181.108.183
220.181.108.182
220.181.108.181

2、上面域名在cmd下nslookup后的结果如下:

C:\>nslookup 220.181.108.184
服务器:  xd-cache-1.bjtelecom.net
Address:  219.141.136.10

非权威应答:
名称:    baiduspider-220-181-108-184.crawl.baidu.com
Addresses:  220.181.108.184


我要输出的格式:

ip:220.181.108.184,名称:baiduspider-220-181-108-184.crawl.baidu.com
ip:220.181.108.183,名称:baiduspider-220-181-108-184.crawl.baidu.com
ip:220.181.108.182,名称:baiduspider-220-181-108-184.crawl.baidu.com
ip:220.181.108.181,名称:baiduspider-220-181-108-184.crawl.baidu.com

我参考的帖子:http://www.bathome.net/thread-42102-1-1.html,中pcl_test,4楼的代码。请大神帮忙调整下,并输出TXT文档形式。
  1. @echo off
  2. for /f %%a in ('more +22 "%~f0"') do (
  3.     setlocal enabledelayedexpansion
  4.     for /f "delims=" %%b in ('nslookup %%a 2^>^&1') do (   
  5.         for /f "tokens=1,2" %%c in ("#%%b") do (
  6.             if /i "%%c" equ "#Address:" (
  7.                 set /p=DNSDZ:%%d YM:%%a<nul
  8.                 set s=%%dfedcba9876543210&set/an=0x!s:~15,1!
  9.                 for /l %%i in (1 1 !n!) do set "space=!space! "
  10.             ) else (
  11.                 if not defined f (
  12.                     if /i "%%c" equ "#Addresses:" (
  13.                         echo; YMDZ:%%d
  14.                         set f=1
  15.                     )
  16.                 ) else if "%%c" equ "#" echo;          !space!YM:%%a YMDZ:%%d
  17.             )
  18.         )
  19.     )
  20.     endlocal&echo;
  21. )
  22. pause&exit
  23. 220.181.108.184
  24. 220.181.108.183
  25. 220.181.108.182
  26. 220.181.108.181
复制代码

本帖最后由 newswan 于 2021-4-29 23:55 编辑
  1. @echo off
  2. for /f %%a in (ip.txt) do (
  3.     for /f "tokens=1,2 delims=:" %%i in (' nslookup %%a | more +2 ') do (
  4.         if "%%i"=="名称" echo ip: %%a, %%i: %%j
  5.     )
  6. )
  7. goto :END
复制代码
1

评分人数

    • minase: 感谢分享技术。技术 + 1

TOP

本帖最后由 minase 于 2021-4-30 09:08 编辑

回复 2# newswan

这个代码简洁易懂,more+2是什么意思?
能帮解答一下吗?

TOP

more +2 表示跳过前面二行,可有可无

TOP

返回列表