返回列表 发帖
@echo off
(for /f "delims=" %%a in (List.txt) do (
  for /f "tokens=1* delims=: " %%b in ('nslookup %%a 2^>nul') do (
    if defined flag (
      if /i "%%b"=="Addresses" (
        for %%d in (%%c) do echo,%%d#%%a
      ) else if /i "%%b"=="Address" echo,%%c#%%a
      set "flag="
    )
    if /i "%%b"=="Name" set flag=1
  )
))>Answer.txtCOPY

TOP

试试看吧。。。
@echo off
(for /f "delims=" %%a in (List.txt) do (
  for /f "skip=1 delims=" %%b in ('nslookup %%a^|findstr "[0-9]$"') do (
    set "addr=%%b"
    setlocal enabledelayedexpansion
    set "addr=!addr:*:=!"
    for %%c in (!addr!) do echo,%%c#%%a
    endlocal
  )
))>Answer.txtCOPY

TOP

回复 12# 宫商角徵羽


set "addr=!addr:str1=str2!" 意思是:将变量addr值中的字串str1替换成字串str2

那么,set "addr=!addr:*:=!" 就是将字串*:替换成(即删除*:

星号(*)可以理解为通配符,指addr值中第一个冒号(:)之前的所有字符

假设addr值为Addresses:  74.125.128.103, 74.125.128.99, 74.125.128.105, 74.125.128.104

*:就是指Addresses:

set "addr=!addr:*:=!" 是将Addresses:替换为空(删除)后,剩下的部分再赋值给变量addr

如果还不明白,看这里:http://www.bathome.net/thread-14927-1-1.html

TOP

返回列表