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

[其他] 一个跨窗口的choice批处理命令:mach.exe

通过三方,可以在当前cmd进程,读写另一个cmd窗口的环境变量

bat与三方可以不再仅仅是通过返回码通话了,

看一个特别的choice,

"mach.exe"

该三方的作用是:
接受键盘输入,返回ascii码,结果存到:窗口标题为“BatHome”,并且初始有变量“#=00”的cmd窗口中,

一次调用,直到按Ctrl+c退出,其它按键就会不断的刷新变量“#=??”


解决了10楼和11楼提出的建议。


附:
一个演示程序 tit.bat
一个mach.exe的实例应用,俄罗斯方块.bat
既不用到临时文件,且效率搞高了。

2009.11.4 更新:
修正了cmd环境变量过大时出现无效的情况。
改为用“#=00”来接受变量,原因是,#号是在cmd环境变量中最前的符号了。


***附件已经更新,请重新下载***
http://bcn.bathome.net/s/tool/index.html?key=mach

没弄懂tit的作用!
有一种爱叫放弃

TOP

真爽,可以提高效率了。

TOP

麻烦举个例子说明一下

TOP

首先,我放在了桌面上,提示docume~1 xxxx 一看就知道是路径问题
第一个出现路径的地方,第三行改成了
start "" "%~s0" net
继续测试。

打开后,是最近成为经典的批游戏模式(一批多功能+自调用)
批处理的头部是通过参数来辨别本次批处理所要执行的功能的,跳到指定功能区。

出现一个大框和一个小框,你把大框激活,在上面按键,白色的小框可以显示按键值。
也就是一个框负责显示,一个框负责读取键值了。
(因为批处理要做到同时刷屏的情况下又要不断读取键值比较麻烦(我不会,见过netbenton的数码雨可以),
   所以做游戏的时候经常是用一个框输入,一个框显示画面的方式,来分担信息的处理
   显然数据之间的沟通是非常重要滴~ 把信息写入文件,或者利用一些可以储存信息的命令
   如assoc ,ftype 关联无关选项等记录信息,都比较耗时和耗cpu,于是……
  )

[ 本帖最后由 523066680 于 2009-10-26 23:03 编辑 ]

TOP

额那个……
变量名和 标题只能是0和bathome 波?
估计mach是netbenton原创拉,帮bathome标题广告一番了哈哈。

[ 本帖最后由 523066680 于 2009-10-26 23:04 编辑 ]

TOP

前段时间想用ftype 或者assoc 记录信息的,这样也可以实现另一个框读取,不过
要获取信息的时候又要搞字符处理了,不干……
mach是很好的选项

TOP

谢谢523066680,解释得很棒。

一楼附件增加了一个实例应用,请大家重新下载。

仍一个不足之处,就是以start /b 运行在同一个窗口时,不能正常运行。也就是只能跨窗口操作,

TOP

我觉得批处理能做到按键不用回车,支持上下左右键控制输入算是很大进步了[当然这个还得用三方],如果能有个彩屏的也人性化了,再来个多进程通信算是齐全了,

这些都还处在娱乐娱乐阶段,【话说回来,我觉得现在国内的批处理论坛都还是以娱乐消遣为主】,象兄这样娱乐技术的不多,论坛多一些如此会员一定可以改变风格

不过我觉得批处理进程通信用临时文件【把要传递的数据存到共享文件里】目前还是最佳选择

TOP

原帖由 netbenton 于 2009-10-26 20:58 发表
既不用到临时文件,且效率搞高了。...


用三方的话效率不会高于临时文件,临时文件还是只限于cmd一个进程,
而三方工具进程频繁地开启又退出 这样一定很耗时,

TOP

好占用内存哟哦,要是内存占用少就好了

TOP

re 10楼
我所指的是,三方通过临时文件与BAT对话,同 三方直接存取变量与BAT对话,
你说哪个快呢?



re 11楼

所有的控制台三方,运行后都会留下内存碎片,包括系统自带的ping.exe也不例外。
平均每运行25~30次左右会“吃”掉1M的内存!!
至于原因何在?就不知道了。

你说mach.exe占内存,说不过去的。

[ 本帖最后由 netbenton 于 2009-10-27 19:30 编辑 ]

TOP

mach.exe
升级

一次打开,就会向"BatHome"窗口不断的送按键,
cup零占用(注意:测试代码中cup占用%100,是主程序批处理循环所至,而并非mach.exe所为)

TOP

重新下载了,tit运行正常。俄罗斯方块却玩不了!
有一种爱叫放弃

TOP

批处理随便一个紧凑的循环,都很占内存的。好像是有堆积作用
@echo off
:a
ping -n 1 127.1>nul
goto :a


@echo off
:a
ping -n 2 127.1>nul
goto :a

cpu占用率差的太远了
--------------------------
对了,俄罗斯方块我这边测试也没成,在读代码中……

[ 本帖最后由 523066680 于 2009-10-28 09:25 编辑 ]

TOP

返回列表