中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-26 09:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » ping IP号和文件比较,又要读取另一个文件内容 查看 968 回复 8
楼 主 ping IP号和文件比较,又要读取另一个文件内容 发表于 2010-05-04 22:26 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
谢谢啊

[ Last edited by lovehanbing520 on 2010-5-5 at 13:23 ]
2 发表于 2010-05-05 08:44 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by lovehanbing520 at 2010-5-4 22:26:
我要做的就是,
setlocal enabledelayedexpansion
@for /L %%i IN (1,1,119) do ping 192.100.110.%%i -n -1 -w 100
如果能ping通,就执行1.2.3.4。如果不能ping通,就接着向后ping
1。。。。就用这个IP号到D:\set\下找是否有,000%%i.frt或00%%i.frt 0%%i.frt 我这样写的原因是我这个目录下都是四位的数字号,

2。。。。如果D:\set\下有000%%i.frt或00%%i.frt或0%%i.frt。就反回执行ping,

3。。。。如果D:\set\下没有000%%i.frt或00%%i.frt或0%%i.frt,就到D:\ssi\set.ini的文件里找第一列%%i所对应的数字,就把相对应数字的后一列数字输出给e:"\user\set.txt~~

1,没看到你的第四个说明。
2,以你说的为示例:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,119) do set i=000%%i&ping 192.100.110.%%i -n 1 -w 100 >nul 2>nul&&(if not exist "d:\set\!i:~-4!.frt" for /f "tokens=1,2" %%j in (d:\ssi\set.ini) do if %%i==%%j >>e:\user\set.txt echo.%%k)


[ Last edited by Hanyeguxing on 2010-5-5 at 10:08 ]
3 发表于 2010-05-05 09:25 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
哦,二楼的不好意思,我多写了一个数字,只有三步`~
4 发表于 2010-05-05 09:29 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
那如果IP到两位数的时候 如何定义:00%%i 0%%i 这两个如何定义
5 发表于 2010-05-05 09:40 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
我测试了一下,不可用啊~~
6 发表于 2010-05-05 10:07 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,119) do (
set i=000%%i
ping 192.100.110.%%i -n 1 -w 100&&if not exist "d:\set\!i:~-4!.frt" for /f "tokens=1,2" %%j in (d:\ssi\set.ini) do if %%i==%%j >>e:\user\set.txt echo.%%k
)
pause

哪部分出问题了?
7 发表于 2010-05-05 10:33 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
for /f "tokens=1,2" %%j in 中的tokens 能单独使用吗?结果就一执行,就暂停了~
8 发表于 2010-05-05 11:06 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,119) do (
set i=000%%i
ping 192.100.110.%%i -n 1 -w 100&&if not exist "d:\set\!i:~-4!.frt" for /f "tokens=1,2" %%j in (d:\ssi\set.ini) do if %%i==%%j >>e:\user\set.txt echo.%%k
)
pause
调试过后,不知道有没有执行if not exist "d:\set\!i:~-4!.frt" for /f "tokens=1,2" %%j in (d:\ssi\set.ini) do if %%i==%%j >>e:\user\set.txt echo.%%k
的语句~~
9 发表于 2010-05-05 11:33 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
还是谢谢你啊~~我调试好了set i=000%%i改为:set i=000%%i.frt就OK了~
论坛跳转: