分享

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

 nxhujiee 2010-02-24
批处理程序中的“多线程”处理 收藏
  大家都知道,批处理中运行的都是一步步单进程执行, 但如果进程执行比较慢,如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)

 

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

  如下内容将简单举例,在WINDOWS下使用批处理做多进程并发,以达到“多线程”的效果。

  例:需要PING 1.1.1.15 到1.1.1.50的所有IP地址,并将是否能PING通的结果输出到IPList.txt

Main.bat

@Echo off
date /t > IPList.txt
time /t >> IPList.txt
echo =========== >> IPList.txt
For /L %%f in (15,1,50) do (start /min cmd /c MultiThreadPing.bat 1.1.1.%%f)

@Echo on

 

MultiThreadPing.bat

ping %1 -n 1
if %errorlevel%==0 (echo %1 alive >> IPList.txt) else (echo %1 dead >> IPList.txt)


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scz123/archive/2006/08/15/1065622.aspx

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多