[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
Windows应用程序的环境变量(包括cmd.exe)继承自创建它的父进程
并继续传递给它创建的子进程

wmic可以改变全局变量
但是其效率甚至不如临时文件
因为它要写注册表
并且广播窗口消息到所有窗口
其它能够改变全局变量的方法无不类似
天的白色影子

TOP

wmic由于自身的机制启动将会很慢
与setx.exe作对比测试了一下
wmic environment耗时是wmic的两倍多

临时文件的性能其实并没有你想象的那么不堪
性能是wmic environment的数百倍

当然如果你考虑到共享冲突而无法选择此方案
还可以选择用Reg add/query操作注册表
它的性能是wmic environment的10+倍
天的白色影子

TOP

是的
注册表项读写实质上也是文件读写
与临时文件不同的地方就是
不需要理会文件句柄的打开和关闭

楼主说的应该是类似于Windows消息和事件触发的机制
这只有自行设计命令行程序才能实现了
天的白色影子

TOP

18# mxxcgzxxx
不知楼上是如何测试的?
doskey的宏只能在cmd当前进程中生效
在平行的cmd.exe进程中是相互独立的
那如何实现cmd进程间的通讯呢?

设想可以通过进程互斥子的方式
实现共享内存式的进程通讯
但实现起来比较麻烦
已经脱离批处理比较远了
天的白色影子

TOP

返回列表