试试看?
https://www.zhangshengrong.com/p/QrXeYmdXdJ//*------------------------------------------------------------------------------------------------------------*/
如下内容将简单举例,在 WINDOWS 下使用批处理做多进程并发,以达到“多线程”的效果。
例:需要 PING 192.168.0.1 到 192.168.0.254 的所有 IP 地址,并将是否能 PING 通的结果输出到 log.txt
实现如下:
rem 主程序.bat ,只需一行代码,调用 checkip.bat ,经测试,CPU2.6G MEM1G 可并发 40 个左右的进程
复制代码 代码如下:
for /l %%i in (1,1,254) do (start /min cmd /c checkip.bat 192.168.0.%%i)
rem checkip.bat 内容如下:
复制代码 代码如下:
ping %1 -n 1
if %errorlevel%==0 (echo %1 alive>>log.txt) else (echo %1 dead>>log.txt)
根据以上资料,我自己进行了修改,只需要一个主程序就能执行代码:
程序进化
复制代码 代码如下:
@
echo off
if "%1"=="" (for /l %%a in (1,1,100) do (start /min cmd /c %0 10.120.6.%%a&ping 127.0.0.1 -n 1>nul))
if not "%1"=="" (ping -a %1 -n 1|find "reply" /i&&echo alive %1>>LogIP.txt||echo dead %1>>LogIP.txt)
为了使代码过长,方便阅读,我分成了两行,其实一行就可以完成的。你可以自己修改,直接在 cmd 窗口运行的语句,如果你写不出来,可以再来问我。
/*------------------------------------------------------------------------------------------------------------*/