中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-23 11:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何控制for循环, 查看 632 回复 4
楼 主 如何控制for循环, 发表于 2009-06-07 22:52 ·  中国 北京 联通
新手上路
积分 7
发帖 7
注册 2008-11-11 16:16
17年会员
UID 130661
性别 男
状态 离线
=================================
for /f "delims=" %%a in (data.txt) do (
start /b ping %%a -n 10 -l 32 > %%a.ping
start /b tracert -d %%a > %%a.tracert
)
2.bat
=================================

如何让上面的 for 循环完成以后在执行2.bat

2.bat是整理 for 循环所生成文件
2 发表于 2009-06-07 23:04 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
就你那批处理就是for 循环完成以后也未必就把所有你需要的文件都生成出来,除非去掉start /b
3 发表于 2009-06-07 23:13 ·  中国 北京 联通
新手上路
积分 7
发帖 7
注册 2008-11-11 16:16
17年会员
UID 130661
性别 男
状态 离线
可以生成的
start /b 只是让所有的 data.txt里的ip
同时进行ping

2.bat
==================================================
for /f "delims=" %%a in (data.txt) do (
echo ===============%%a=============== >> loss.log
type %%a.ping |findstr Packets >> loss.log
type %%a.ping |findstr Minimum >> loss.log
)
==============================================

是把结果整理下,

我就可以直接把 1.bat 增加到计划任务里就行了,每1小时执行一次,最后只看loss.log结构就行了

2.bat 必须要等 上面的1.bat 执行完成以后才能提出出来

[ Last edited by selboo on 2009-6-7 at 23:14 ]
4 发表于 2009-06-08 00:26 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
下面应该是你想要的吧?
@echo off
for /f "delims=" %%a in (data.txt) do (
start/b ping %%a -n 10 -l 32>%%a.ping
start/b tracert -d %%a>%%a.tracert
)
:a
set c=0
for /f %%a in ('tasklist^|findstr/i "ping.exe tracert.exe"') do set c=1
if %c%==1 goto a
2.bat


[ Last edited by 不得不爱 on 2009-6-8 at 00:27 ]
5 发表于 2009-06-08 01:33 ·  中国 北京 联通
新手上路
积分 7
发帖 7
注册 2008-11-11 16:16
17年会员
UID 130661
性别 男
状态 离线
谢谢版主大人
检测ping.exe进程

我的邮箱 towcevd@163.com
以后你要是有什么问题,关于计算机的,帮你解决下,多一个人多一个机会
论坛跳转: