Board logo

标题: [文本处理] [已解决]for循环获取到了需要的文本内容,do后面不会写了,求助 [打印本页]

作者: zds612    时间: 2017-11-16 16:51     标题: [已解决]for循环获取到了需要的文本内容,do后面不会写了,求助

本帖最后由 zds612 于 2017-11-17 13:53 编辑

我需要写一个批处理用于每日检查较多的服务器及网络设备状态,

检查方法就是ping每个IP,如果不通再详细跟进处理

我的思路是在ip.txt里预录入了相关的IP和设备名称,如:
  1. 132.147.180.2 内部网服务器
  2. 132.147.180.9 电邮服务器
  3. 132.147.180.123 打印服务器
复制代码
然后通过for循环将所需的ip和名称获取到,

接着执行ping命令,然后进行检测(ERRORLEVEL),并提示成功或失败

显示的效果是
  1. 正在检查ip为132.147.180.2 的内部网服务器 的网络状态...
  2. 检查结果:网络正常。
  3. 正在检测ip为132.147.180.9 电邮服务器 的网络状态...
  4. 检查结果:网络正常。
  5. 正在检测ip为132.147.180.123 打印服务器 的网络状态..
  6. .检查结果:网络正常。
复制代码
看了网上关于for的知识,写出这个代码,后面的不会写了。。
  1. @echo off
  2. for /f "tokens=1,2 delims= " %%i in (ip.txt) do echo 正在ping%%j... && ping -n 2 %%i>nul
  3. pause
复制代码
求帮助,谢谢!
作者: Blitz    时间: 2017-11-16 21:31

本帖最后由 Blitz 于 2017-11-16 21:53 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2 delims= " %%i in (ip.txt) do (
  3. echo 正在检查ip为 %%i 的 %%j 的网络状态...
  4. ping -n 2 %%i|find "TTL" >nul
  5. if !errorlevel! == 0 (echo 检查结果:网络正常) else echo 检查结果:网络错误---
  6. echo.
  7. )
  8. pause
复制代码

作者: zds612    时间: 2017-11-17 09:29

回复 2# Blitz


    非常感谢!!




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