找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23671|回复: 2

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

[复制链接]
发表于 2017-11-16 16:51:09 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
求帮助,谢谢!
发表于 2017-11-16 21:31:29 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
zds612 + 1 感谢!

查看全部评分

 楼主| 发表于 2017-11-17 09:29:10 | 显示全部楼层
回复 2# Blitz


    非常感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 01:40 , Processed in 0.018786 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表