中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 14:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 帮忙写个判断语句 查看 830 回复 4
楼 主 帮忙写个判断语句 发表于 2007-05-11 23:35 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
@echo off
set /p ip=请输入要扫描IP:
for /f "tokens=3 delims=: " %%i in ('ping -n 1 %ip%^|find /i "reply from"') do set a=%%i
for /f "tokens=5 delims=time<" %%j in ('ping -n 1 %ip%^|find /i "reply from"') do set b=%%j
我想加个判断如果ping通就显示:
echo 连接 %a% 成功,网络延迟 %b% ms %time:~0,8%
如果ping不通就显示:
echo 连接%a%不成功网络丢包
请帮忙写全...搞拉几个小时写不好判断
2 发表于 2007-05-12 00:08 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
@echo off
set /p ip=请输入要扫描IP:
for /f "skip=8 tokens=3 delims=," %%i in ('ping /n 1 %ip%') do call :doit %%i
echo 连接%ip%不成功网络丢包
goto :end

:doit
if "%1"=="Average" echo 连接%ip%成功,网络延迟%2 %time:~0,8%

:end
pause
exit
正在潜水修练的批处理小白
3 发表于 2007-05-12 00:20 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
可以解释一下
if "%1"=="Average" echo 连接%ip%成功,网络延迟%2 %time:~0,8%
的意思吗???只要是%1 和%2
4 发表于 2007-05-12 00:30 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
可以解释一下
if "%1"=="Average" echo 连接%ip%成功,网络延迟%2 %time:~0,8%
的意思吗???只要是%1 和%2
5 发表于 2007-05-12 00:32 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
打开回显并设置echo等显示变量就可以知道了

ping通时会执行类似于下面的
call :doit Average = 40ms

在批处理里面,","和"="等都可以充当空格的分隔符号作用,所以下面的%1和%2就是代指Average和40ms;
正在潜水修练的批处理小白
论坛跳转: