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

[文本处理] [已解决]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: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
复制代码
1

评分人数

TOP

回复 2# Blitz


    非常感谢!!

TOP

返回列表