中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [完美解决]关于多线程start && 命令连接的问题
<<   [1] [2]  >>   >
作者:
标题: [完美解决]关于多线程start && 命令连接的问题 上一主题 | 下一主题
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『楼 主』:  [完美解决]关于多线程start && 命令连接的问题

@echo on :loop set /a c+=1 start /i /min ping -n 2 172.16.1.%c% && echo 172.16.1.%c% >>b:\ip.txt if "%c%"=="20" exit goto :loop 上面的代码无法实现能PING 通的放入IP.txt 谁能告诉我为什么 [ Last edited by 429499381 on 2007-8-14 at 03:22 PM ]


2007-8-11 02:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 2 楼』:  

有谁知道如何让多线程并保留部分结果!! 如同是开20开窗口PING, 能PING通的放如1.txt


2007-8-11 06:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Michael
钻石会员





积分 10046
发帖 3039
注册 2002-11-11
状态 离线
『第 3 楼』:  

findstr




简单就是美
2007-8-11 10:05
查看资料  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 4 楼』:  

但是用了 start /i 之后, 新开的窗口无法同时实现命令的连接!! start /i tasklist & pause 其中pasue 无法传递在新环境下!! 有解吗??


2007-8-11 16:17
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 5 楼』:  

不要使用start命令就可以了




2007-8-12 11:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 6 楼』:  

不用START如何实现模拟多线程呢?? 给点提示!!! 我刚刚又试验了一下 下面的P处理能模拟多线程, 但无法退出!! 哎!! set a= :loop set /a a+=1 cmd /c start echo %a% >>e:\%a%.txt if "%a%"=="5" exit goto :loop


2007-8-13 16:14
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 7 楼』:  

set a= :loop set /a a+=1 echo %a% >>e:\%a%.txt if "%a%"=="5" exit goto :loop 这样就可以了 @echo on :loop set /a c+=1 ping -n 2 172.16.1.%c% && echo 172.16.1.%c% >>b:\ip.txt if "%c%"=="20" exit goto :loop 这也会正确,如果执行start /i /min ping -n 2 172.16.1.%c% && echo 172.16.1.%c% >>b:\ip.txt命令的话,系统会新开窗口执行ping -n 2 172.16.1.%c%同时在不等得到结果后就在本出口执行echo 172.16.1.%c% >>b:\ip.txt所以你的BAT会出错! 也就是说:start /i /min ping -n 2 172.16.1.%c% && echo 172.16.1.%c% >>b:\ip.txt 等效于: start /i /min ping -n 2 172.16.1.%c% echo 172.16.1.%c% >>b:\ip.txt




2007-8-13 21:17
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 8 楼』:  

我知道你说的, 我也实验过了!! 我是想知道如何模拟多线程 或者说有什么办法能让 START传递2个以上的命令在新环境下!!! 不知道我的表达够不够清楚!!! 有解吗? 给点提示!!!


2007-8-14 00:27
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 9 楼』:  

START不能传递2个以上的命令在新环境下,不过可以用下面的方法来解决你的问题
echo ping -n 2 172.16.1.%%1 ^&^& echo 172.16.1.%%1 ^>^>b:\ip.txt ^&exit>tmp.bat
:loop
set /a c+=1
start /i /min tmp.bat %c%
if "%c%"=="20" ping -n 5 127.1 &del tmp.bat&exit
goto :loop




2007-8-14 08:27
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 10 楼』:  

楼主的要求是什么? 这样?
set a=
:loop 
set /a a+=1
start cmd /c &echo %a% >>%a%.txt 
pause
if "%a%"=="5" exit
goto :loop 
[ Last edited by ccwan on 2007-8-14 at 09:34 AM ]


   此帖被 +2 点积分    点击查看详情   
评分人:【 429499381 分数: +2  时间:2007-8-14 15:19




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2007-8-14 09:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 11 楼』:  

10楼的满足了我的要求, 太谢谢你了, 我求了4天, 实验了6个小时都没结果,终于等到你了 我试过CMD /C START 为什么没想想试START CMD /C 呢?? 对DOS还是不够娴熟!!! 


2007-8-14 15:21
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 12 楼』:  

多进程好不?




C:\>BLOG initiative.yo2.cn/ C:\>hh.exe ntcmds.chm::/ntcmds.htm C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2007-8-14 15:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 13 楼』:  

唯一的好处是100%的CPU!! 本来是想写一个用WMIC查询有没有非法上机的批 处理 但是后来发现部分新的XP系统怎么也无法查询远程的进程名!! 总是拒绝访问!! 不解, 估计没开RPC远程过程调用吧!! ccwan 请问为什么 set a= :loop set /a a+=1 start cmd /c &echo %a% >>%a%.txt pause if "%a%"=="5" exit goto :loop START CMD /C 后面加了 & 才能达到我的效果!! 这是为什么???


2007-8-14 20:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 14 楼』:  

很简单,加了 &后echo %a% >>%a%.txt 命令就在本窗口执行了,新开的窗口就执行了下cmd /c命令




2007-8-14 20:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 15 楼』:  

不得不爱说的很对




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2007-8-15 08:06
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: