中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 03:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]一个循环的 查看 717 回复 6
楼 主 [求助]一个循环的 发表于 2007-12-29 10:35 ·  中国 浙江 台州 电信
初级用户
积分 21
发帖 9
注册 2007-12-27 23:35
18年会员
UID 106996
性别 男
状态 离线
比如
set/p startip=开始IP:
set /p endip=结束IP:
ping %startip% %endip% /save

上面的IP的执行完后
怎么给它赋新值
新值有这样的要求
startip= endip ,endip=endip+50(第2段的50,如127.0.0.1那么就变成127.50.0.1) 这里要 有IF语句判断endip的第2段是不是200 是的话就变成第一段+1 如127.200.1.1 那么新值就为128.1.1.1

可以把原先的变成set/p startip=开始IP:
set /p endip=结束IP:
ping %startip%.1.1 %endip%.1.1 /save
方便+法

求完整的语句:D:D

[ Last edited by tips1127 on 2007-12-29 at 12:49 PM ]
2 发表于 2007-12-29 16:47 ·  中国 浙江 台州 电信
初级用户
积分 21
发帖 9
注册 2007-12-27 23:35
18年会员
UID 106996
性别 男
状态 离线
up
知道的说下呀
3 发表于 2007-12-29 17:47 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
变量延迟+set/a
4 发表于 2007-12-29 18:27 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
这要根据实际执行的命令来操作的
你的是ping命令吗?
你的endip+50=startip还是endip,或是等于startip那么endip怎么取新值?
5 发表于 2007-12-29 20:33 ·  中国 浙江 台州 椒江区 电信
初级用户
积分 21
发帖 9
注册 2007-12-27 23:35
18年会员
UID 106996
性别 男
状态 离线
这跟命令应该没什么关系
我的意思是当原先设定的IP命令结束后,
重新赋予新值 继续执行下去
新值的有这样的要求
新的startip = 原先的endip
新的endip = 新的startip(原先的endip)+50

就这样
6 发表于 2007-12-29 23:49 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

@echo off
set sip=192.1.1.1
set eip=%sip:.=,%
for %%i in (%eip%) do set/a x+=1&&call set ip%%x%%=%%i
for /l %%i in (1,1,20) do call :ipset
pause&goto :eof
:ipset
set/a ip2+=50,1/(254/ip2) 2>nul||set /a ip1+=1,ip2=1,z=0
echo ping %sip% - %ip1%.%ip2%.%ip3%.%ip4% /save
set sip=%ip1%.%ip2%.%ip3%.%ip4%
goto :eof
7 发表于 2007-12-30 11:15 ·  中国 浙江 台州 电信
初级用户
积分 21
发帖 9
注册 2007-12-27 23:35
18年会员
UID 106996
性别 男
状态 离线
谢谢了 学习了
论坛跳转: