Board logo

标题: [网络连接] [已解决]批处理文件如何查到ip对应地址表中的名称或描述? [打印本页]

作者: pyhx    时间: 2012-1-5 08:09     标题: [已解决]批处理文件如何查到ip对应地址表中的名称或描述?

各位老师,小弟我现在要查各个班组的电脑开机情况,已经用了一个批处理来自动ping地址表中的ip地址,能不能把不通的ip地址对应的班组名称一起反馈呢?
因为有些ip地址不方便对外发布,所以举例说明一下吧:
a。txt是ip地址表
172.16.0.1        1班
172.16.0.2        2班
172.16.0.3        3班
172.16.0.4        4班
172.16.0.5        5班
172.16.0.6        6班
172.16.0.7        7班
172.16.0.8        8班
172.16.0.9        9班
172.16.0.10        10班
172.16.0.11        11班
172.16.0.12        12班
172.16.0.13        13班
172.16.0.14        14班
我每天早上对这些地址ping一遍,要求找出哪些班组没有开机也就是不通。反馈结果
例如
172.16.0.9        9班
172.16.0.10        10班
172.16.0.11        11班
172.16.0.12        12班
172.16.0.13        13班
这样的话我就知道那些班组不通,就可以找到相关责任人员
现在用的是一位论坛里老师给的
for /f %%i in (a.txt) do (ping /n 1 %%i||echo,%%i>>b.txt)
可以反馈不通的ip地址,但是不能反馈对应的名称,因为ip地址较多,所以在ip表中比对比较费时间,能不能
在反馈ip地址的同时反馈对应的名称?前提是我有ip地址表,每一个ip地址固定对应一个名称。
谢谢
作者: Demon    时间: 2012-1-5 09:23

  1. for /f "tokens=1,2" %%i in (a.txt) do (ping /n 1 %%i||echo,%%i%%j>>b.txt)
复制代码

作者: 601997526    时间: 2012-1-5 09:24

  1. for /f "tokens=1,2" %%i in (a.txt) do (ping /n 1 %%i||echo,%%i %%j>>b.txt)
复制代码

作者: pyhx    时间: 2012-1-5 11:24

谢谢了啊,已经实现了功能
能不能添加一个计数功能啊,就是最后翻出来共有多少个不通的
作者: lovedjsn    时间: 2012-1-5 19:22

本帖最后由 lovedjsn 于 2012-1-5 19:28 编辑

q我上次好像给你写过~!
用SET计数
set a=1
set a+=1
作者: pyhx    时间: 2012-1-6 08:41

不会啊,老大
加到那一句里面啊
作者: pyhx    时间: 2012-1-6 08:51

还能不能加进去日期啊
就是每天ping完生成的文本加进去当天的日期
作者: find    时间: 2012-1-6 10:42

回复 4# pyhx
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set count=0
  4. type nul>b.txt
  5. for /f "tokens=1,2" %%i in (a.txt) do (
  6.     ping /n 1 %%i
  7.     if "!errorlevel!" neq "0" (
  8.         >>b.txt echo,%%i %%j
  9.         set /a count+=1
  10.     )
  11. )
  12. >>b.txt echo 共有!count!个不通的
复制代码

作者: find    时间: 2012-1-6 10:43

回复 7# pyhx
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set count=0
  4. type nul>b.txt
  5. for /f "tokens=1,2" %%i in (a.txt) do (
  6.     ping /n 1 %%i
  7.     if "!errorlevel!" neq "0" (
  8.         >>b.txt echo,%%i %%j
  9.         set /a count+=1
  10.     )
  11. )
  12. >>b.txt echo 共有!count!个不通的
  13. >>b.txt echo %date% %time%
复制代码

作者: lovedjsn    时间: 2012-1-6 12:27

本帖最后由 lovedjsn 于 2012-1-6 12:54 编辑

回复 9# find


    感觉type有点多余加个DEL可能会好点不用麻烦最次要删除
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set count=0
  4. del /f /q b.txt >nul 2>nul
  5. for /f "tokens=1,2" %%i in (a.txt) do (
  6.     ping -n 1 %%i>nul
  7.     if "!errorlevel!" neq "0" (
  8.         >>b.txt echo,%%i %%j&&echo %%i %%j
  9.         set /a count+=1
  10.     )
  11. )
  12. echo ______________________________________________________________________
  13. echo 共有!count!个不通的
  14. >>b.txt echo 共有!count!个不通的
  15. >>b.txt echo %date% %time%
  16. pause >nul
复制代码

作者: find    时间: 2012-1-6 12:41

回复 10# lovedjsn


请教一下del比type好在什么地方?
作者: lovedjsn    时间: 2012-1-6 12:49

回复 11# find


    我是没有看懂你用TYPE用意是什么~~~所以感觉用DEL可以减少手动删除或多次写入~~!
作者: Hello123World    时间: 2012-1-6 13:11

  1. @echo off
  2. for /f "tokens=1,2" %%i in (a.txt) do (ping /n 1 %%i||echo,%%i%%j>>b.txt&&Set /a n+=1)
  3. echo ping不通的合计:%n%
  4. pause
复制代码

作者: find    时间: 2012-1-6 13:24

回复 12# lovedjsn


type那个方法就是为了避免手动删除或多次写入
作者: lovedjsn    时间: 2012-1-6 13:30

回复 14# find


    饿饿~~~是偶的错~~汗汗空写~~以前还真没有注意到~~!
作者: find    时间: 2012-1-6 13:36

回复 15# lovedjsn


大家相互切磋
作者: pyhx    时间: 2012-1-9 14:16

已成功实现,谢谢各位啦

作者: qiao849    时间: 2012-2-15 19:56

这里高手真多




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