楼 主
[完美解决]关于多线程start && 命令连接的问题
发表于 2007-08-11 02:29 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
@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 楼
发表于 2007-08-11 06:00 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
有谁知道如何让多线程并保留部分结果!!
如同是开20开窗口PING, 能PING通的放如1.txt
第 3 楼
发表于 2007-08-11 10:05 · 中国 山东 济宁 兖州区 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
第 4 楼
发表于 2007-08-11 16:17 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
但是用了 start /i 之后, 新开的窗口无法同时实现命令的连接!!
start /i tasklist & pause 其中pasue 无法传递在新环境下!!
有解吗??
第 5 楼
发表于 2007-08-12 11:28 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
第 6 楼
发表于 2007-08-13 16:14 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
不用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 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
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 楼
发表于 2007-08-14 00:27 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
我知道你说的, 我也实验过了!!
我是想知道如何模拟多线程 或者说有什么办法能让
START传递2个以上的命令在新环境下!!!
不知道我的表达够不够清楚!!! 有解吗? 给点提示!!!
第 9 楼
发表于 2007-08-14 08:27 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
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
第 10 楼
发表于 2007-08-14 09:31 · 中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
楼主的要求是什么?
这样?
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 ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
第 11 楼
发表于 2007-08-14 15:21 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
10楼的满足了我的要求, 太谢谢你了, 我求了4天, 实验了6个小时都没结果,终于等到你了
我试过CMD /C START 为什么没想想试START CMD /C 呢??
对DOS还是不够娴熟!!!
第 12 楼
发表于 2007-08-14 15:48 · 中国 四川 成都 联通
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
多进程好不?
C:\>BLOG http://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'>"
第 13 楼
发表于 2007-08-14 20:01 · 中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
UID 74161
性别 女
状态 离线
唯一的好处是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 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
很简单,加了 &后echo %a% >>%a%.txt 命令就在本窗口执行了,新开的窗口就执行了下cmd /c命令
第 15 楼
发表于 2007-08-15 08:06 · 中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
不得不爱说的很对
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
论坛跳转: