[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 多线程执行批处理脚本 cocmd 1.2

本帖最后由 Byaidu 于 2021-9-7 06:59 编辑

cocmd 工具通过在进程空间中加载多个 cmd.dll 实例实现了真正意义上的多线程执行批处理脚本

使用方法:cocmd [命令1] [命令2] ...

不同于 start /b 的多进程启动方式,因为环境变量和进程环境是绑定的,所以多个脚本线程间可以实时共享变量以及 GDI 句柄等资源

1.2 版本添加了线程锁机制并集成了 CAPIx 的强大功能

多线程机制可以很大程度上提升批处理脚本的可玩性

例如通过多线程机制可以实现一个简单的实时聊天室,网络通信、用户输入以及界面绘制等功能可以通过 CAPIx 实现,并借助 cocmd 分离到不同的线程执行,线程之间可以通过变量实时通讯而不会相互干扰

项目地址:https://github.com/Byaidu/cocmd

回复 2# peterboy666


我这里是 Windows 7 SP1 X64 简体中文,可以正确显示 title

TOP

TOP

回复 2# peterboy666


可能是系统版本问题导致 1.bat 没有正常启动

把 test.bat 的内容改成 cocmd "" "" test\1.bat test\2.bat test\3.bat 应该就可以了

TOP

回复 6# peterboy666


那个报错的问题好修,直接 hook 屏蔽掉 PutMsg 就可以

但是不能执行 title 就有点奇怪了,我这边没办法复现的话就不太好改,不过好像也不是什么大问题(

TOP

本帖最后由 Byaidu 于 2021-9-7 18:22 编辑

回复 6# peterboy666


github 上发布了 1.5 版本,现在应该没有报错了

TOP

回复 9# peterboy666


原生的 cmd 对并行操作支持不太好,有时候会把管道描述符卡错位导致不能正常输出,如果有输出字符的需求可以使用内置的 CAPIx 调用 WriteConsoleOutputCharacter 完成

TOP

返回列表