Board logo

标题: [网络连接] 求助批处理ping命令计算机名导出IP地址 [打印本页]

作者: internet20    时间: 2022-4-1 17:22     标题: 求助批处理ping命令计算机名导出IP地址

各位大神:
求助!
csv表格导出一列计算机名,用ping命令拼计算机名得出IP地址并提取IP地址到该表格下一列,并且一一对应。
例:一、123.csv内容: www.baidu.com
                                www.csdn.net
                                lixx3
                                telw4
二、ping命令后得出结果:
正在 Ping www.a.shifen.com [110.242.68.3] 具有 32 字节的数据:
来自 110.242.68.3 的回复: 字节=32 时间=21ms TTL=53

110.242.68.3 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 21ms,最长 = 157ms,平均 = 57ms

正在 Ping www.csdn.net [39.106.226.142] 具有 32 字节的数据:
来自 39.106.226.142 的回复: 字节=32 时间=20ms TTL=89

39.106.226.142 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 20ms,最长 = 29ms,平均 = 22ms
Ping 请求找不到主机 lixx3。请检查该名称,然后重试。
Ping 请求找不到主机 telw4。请检查该名称,然后重试。
批处理内容:
  1. @echo off
  2. for /f %%i in (123.csv) do ping.exe %%i >>ipscan.txt
  3. for /f "delims=[] tokens=2" %%i in (ipscan.txt) do echo %%i >>123.csv
  4. pause  
复制代码

问题:
1、无法从123.csv中提取数据进行ping处理,只能从txt文本运行成功第一条命令。
2、第二条命令提取出的IP地址存放到123.csv内会覆盖第一列内容,如何存放到第二列,并且与计算机名一一对应?
3、ping通的计算机可以显示IP地址,未ping通如何标记?
作者: Batcher    时间: 2022-4-1 17:50

回复 1# internet20
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "NewFile=456.csv"
  5. >"%NewFile%" type nul
  6. for /f "delims=" %%i in ('type "123.csv"') do (
  7.     echo 正在处理 %%i
  8.     set "IP=ping不通"
  9.     for /f "tokens=2 delims=[]" %%a in ('ping -n 1 "%%i" ^| findstr /i /c:"正在" /c:"Pinging"') do (
  10.         set "IP=%%a"
  11.     )
  12.     >>"%NewFile%" echo %%i,!IP!
  13. )
复制代码

作者: internet20    时间: 2022-4-1 18:10

回复 2# Batcher


    不行呀,打不开456.CSV
作者: Batcher    时间: 2022-4-1 19:18

回复 3# internet20


请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2