标题: [其他] 能否在批处理中一个窗口多个线程运行程序 [打印本页]
作者: 蚯蚓传奇 时间: 2024-8-21 12:12 标题: 能否在批处理中一个窗口多个线程运行程序
本帖最后由 蚯蚓传奇 于 2024-8-21 12:35 编辑
由于我做的聊天机器人运行时效率不够高,所以我打算改良一下程序,有人愿意合作吗,程序下载地址:https://pan.baidu.com/s/1EVcEEOxYHPtUDkAA1bfbVw?pwd=chat 提取码:chat
这是我第一次写比较复杂的软件,所以没有什么经验,还请多多指教
作者: 蚯蚓传奇 时间: 2024-8-21 12:20
程序除了速度慢还有个问题就是因为这是我很早以前就开始写的嘛,那个时候搭建程序主体框架搭建的不够高效,导致现在有些bug修复不了。也欢迎加入我们这个项目,如果有兴趣可以加我qq(主页上有)一起探讨和开发
作者: 77七 时间: 2024-8-21 12:31
楼主为何不压缩下再上传...文件999+
作者: 蚯蚓传奇 时间: 2024-8-21 12:33
本帖最后由 蚯蚓传奇 于 2024-8-21 12:36 编辑
回复 3# 77七
现在试一下那个链接呢
作者: 蚯蚓传奇 时间: 2024-8-21 12:44
回复 3# 77七
对了,这个程序是我之前初始化好了的,如果要初始化只要把Chat\Chat\username.txt文件删了然后重启程序就行了
作者: 77七 时间: 2024-8-21 16:11
试试 start /b 能否满足
作者: 蚯蚓传奇 时间: 2024-8-21 20:26
回复 6# 77七
但是这样不就差不多是call文件的效果吗
作者: 77七 时间: 2024-8-22 08:38
回复 7# 蚯蚓传奇
和call差别很大吧
start /?
复制代码
不是一个窗口多个线程的概念吗?
作者: 77七 时间: 2024-8-22 10:15
看了楼主的代码及文件,很多我看不懂的地方就其中我知道的,提几点建议
1.尽量少使用或者不使用临时文件
如
- set /p 版本=<"Chat\版本号.txt"set /p 日期=<"Chat\版本日期.txt"
复制代码
这两项完全可以放到一个文件中
再如 变换颜色,很简单的命令,楼主用了7个文件记录命令,从维护上来说也增加了不少工作量
2.重定向命令前置及合并
复制代码
可以调整为
复制代码
避免了内容结尾的空格。
对多个内容重定向可以写到一起
- (
- echo =========================
- echo Chat start time:%date:~0,10% %time%
- ) >> "Chat\Chat\chat.log"
复制代码
3.部分影响效率的用法
- type "短语库.txt" | find /i "@speak" >nul
- if %errorlevel% equ 0 (
- goto speak
- )
- type "短语库.txt" | find /i "@set" >nul
- if %errorlevel% equ 0 (
- goto set
- )
- type "短语库.txt" | find /i "@#set" >nul
- if %errorlevel% equ 0 (
- goto set4
- )
复制代码
暂时可以改为写
- for %%a in ("speak" "set") do (
- find /i "@%%~a" <"短语库.txt" 1>nul
- if not errorlevel 1 (
- goto :%%~a
- )
- )
复制代码
应该能提高效率、及使代码更加简洁
4.变量的命名
楼主的变量命名使用了命令,如第3点中的 set4 @#set ,添加了#,避免了重复,但是含义不明晰,且不统一,应当避免使用系统命令命名,计算机语言中有很多变量命名方法,楼主可以学习一下,在这么长的脚本下,应该能起到作用。
作者: 蚯蚓传奇 时间: 2024-8-22 14:20
看了楼主的代码及文件,很多我看不懂的地方就其中我知道的,提几点建议
1.尽量少使用或者不使用临时文件
...
77七 发表于 2024-8-22 10:15
谢谢你的建议,万分感激
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |