批处理程序中的“多线程”处理

时间:2022-07-29 23:03:54

  大家都知道,批处理中运行的都是一步步单进程执行, 但如果进程执行比较慢,如PING一个不通的IP地址,那就会大大影响批处理程序的执行效率。

  如下内容将简单举例,在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)批处理程序中的“多线程”处理