![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 19:55 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [完美解决]关于多线程start && 命令连接的问题 |
| 可打印版本 2,385 / 17 |
| 第1楼 429499381 | 发表于 2007-08-11 02:29 |
| 中级用户 发帖 202 积分 452 | |
|
[完美解决]关于多线程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 ] |
|
| 第2楼 429499381 | 发表于 2007-08-11 06:00 |
| 中级用户 发帖 202 积分 452 | |
|
有谁知道如何让多线程并保留部分结果!!
如同是开20开窗口PING, 能PING通的放如1.txt |
|
| 第3楼 Michael | 发表于 2007-08-11 10:05 |
| 钻石会员 发帖 3,041 积分 10,054 | |
|
findstr
|
|
| 第4楼 429499381 | 发表于 2007-08-11 16:17 |
| 中级用户 发帖 202 积分 452 | |
|
但是用了 start /i 之后, 新开的窗口无法同时实现命令的连接!!
start /i tasklist & pause 其中pasue 无法传递在新环境下!! 有解吗?? |
|
| 第5楼 不得不爱 | 发表于 2007-08-12 11:28 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
不要使用start命令就可以了
|
|
| 第6楼 429499381 | 发表于 2007-08-13 16:14 |
| 中级用户 发帖 202 积分 452 | |
|
不用START如何实现模拟多线程呢?? 给点提示!!! 我刚刚又试验了一下
下面的P处理能模拟多线程, 但无法退出!! 哎!! set a= :loop set /a a+=1 cmd /c start echo %a% >>e:\%a%.txt if "%a%"=="5" exit goto :loop |
|
| 第7楼 不得不爱 | 发表于 2007-08-13 21:17 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
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 |
|
| 第8楼 429499381 | 发表于 2007-08-14 00:27 |
| 中级用户 发帖 202 积分 452 | |
|
我知道你说的, 我也实验过了!!
我是想知道如何模拟多线程 或者说有什么办法能让 START传递2个以上的命令在新环境下!!! 不知道我的表达够不够清楚!!! 有解吗? 给点提示!!! |
|
| 第9楼 不得不爱 | 发表于 2007-08-14 08:27 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
START不能传递2个以上的命令在新环境下,不过可以用下面的方法来解决你的问题
|
|
| 第10楼 ccwan | 发表于 2007-08-14 09:31 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
楼主的要求是什么?
这样? [ Last edited by ccwan on 2007-8-14 at 09:34 AM ] |
|
| 第11楼 429499381 | 发表于 2007-08-14 15:21 |
| 中级用户 发帖 202 积分 452 | |
|
10楼的满足了我的要求, 太谢谢你了, 我求了4天, 实验了6个小时都没结果,终于等到你了
我试过CMD /C START 为什么没想想试START CMD /C 呢?? 对DOS还是不够娴熟!!! |
|
| 第12楼 electronixtar | 发表于 2007-08-14 15:48 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
多进程好不?
|
|
| 第13楼 429499381 | 发表于 2007-08-14 20:01 |
| 中级用户 发帖 202 积分 452 | |
|
唯一的好处是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 后面加了 & 才能达到我的效果!! 这是为什么??? |
|
| 第14楼 不得不爱 | 发表于 2007-08-14 20:22 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
很简单,加了 &后echo %a% >>%a%.txt 命令就在本窗口执行了,新开的窗口就执行了下cmd /c命令
|
|
| 第15楼 ccwan | 发表于 2007-08-15 08:06 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
不得不爱说的很对
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |