• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >DOS/BAT > 批处理程序中的“多线程”处理代码

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

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了批处理程序中的“多线程”处理代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

如下内容将简单举例,在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)
</div>

rem checkip.bat内容如下:
ping %1 -n 1
if %errorlevel%==0 (echo %1 alive>>log.txt) else (echo %1 dead>>log.txt)
</div>

根据以上资料,我自己进行了修改,只需要一个主程序就能执行代码:
程序进化

@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)
</div>

为了使代码过长,方便阅读,我分成了两行,其实一行就可以完成的。你可以自己修改,直接在cmd窗口运行的语句,如果你写不出来,可以再来问我。
程序知识点说明:

1.判断参数是否为空
2.使用start命令,请注意和goto和call的区别
3.使用ping做延迟
4.使用find命令判断IP是否开机状态并记录到日志中
5.提示信息禁止输出。

程序再进化
为了每次执行后清空日志文件,修改代码如下:

@echo off
if "%1"=="" (
if exist "logip.txt" del LogIp.txt
for /l %%a in (1,1,100) do (start /min cmd /c %0 10.120.6.%%a&ping 127.0.0.1 -n 1 1>nul))
if not "%1"=="" (ping -a %1 -n 1|find "reply" /i&&echo alive %1>>LogIP.txt||echo dead %1>>LogIP.txt)
</div>

当然,如果你想使用两个bat文件,可以直接把两行代码分别写在两个文件中,每个文件写一行也可以。

说明:

1.在for语句的最后,有ping 127.0.0.1 -n 1 1>nul,-n 1表示ping1次,后面的1>nul表示正常信息重定向禁止输出,具体博客内容其他文章句柄重定向。
2.语句if exist "logip.txt" del LogIp.txt可以使用 echo [%date% %time%]>LogIp.txt 来代替,它们两句的作用是相同的,具体使用就看个人用法了
以上是自己的一些心得,怕自己忘记,记录在此。

补充参考 jack_Meng

</div>

您可能想查找下面的文章:

相关文章

  • 批处理bat计算上个月最后一天的日期
  • 实现Win7系统快速一键切换用户的bat脚本
  • 用dsadd添加用户的代码
  • 批处理中使用系统路径的命令
  • 批处理 保留空行替换字符串
  • 根据当前目录下的文件生成网址列表的bat
  • 关于echo 的问题与使用说明
  • Windows批处理双击切换IP地址方便、快捷
  • 超级硬盘杀手的bat
  • 批处理入门与提高

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 枚举当前目录及子目录大小的批处理
    • ARP实现本机绑定的批处理文件
    • dos下at命令的用法
    • 批处理实现固定IP地址 系统自动登录 登录后锁定计算机
    • ANSI.SYS程序的使用方法
    • 用 Net 命令使局域网文件批量同步更新
    • 本机每个盘都添加上卷标的命令
    • 使用BAT批处理在RAR压缩文件中批量添加文件的方法
    • 屏蔽up键禁止游戏运行脚本分享
    • BAT批处理实现Fibonacci函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有