VBS中的Microsoft.CmdLib对象

标签: , , , ,

最早提到Microsoft.CmdLib对象的地方应该是微软脚本专家的《不太辛苦的工作照样也有回报》一文,里面以幽默风趣的语言介绍了Microsoft.CmdLib对象的showResults方法。除此之外,Microsoft.CmdLib对象还有什么方法呢?

Microsoft.CmdLib是由cmdlib.wsc提供的COM对象,存在于Windows XP和Windows Server 2003系统中,Windows Vista之后的系统不自带Microsoft.CmdLib(当然,你可以从其他系统复制cmdlib.wsc过去并注册),所以不具有可移植性。

wsc是Windows Script Components的缩写,意为Windows脚本组件,提供了使用脚本语言来创建COM组件的便利途径。(关于wsc的更多内容请自行查阅文档)

.wsc文件是XML格式的,用EditPlus打开,可以看到<public>标签中的内容:

<method name="checkScript"/>
<method name="vbPrintf"/>
<method name="getHostName"/>
<method name="getUserName"/>
<method name="getDomainName"/>
<method name="LengthinBytes"/>
<method name="getPassword"/>
<method name="trapError"/>
<method name="getArguments"/>
<method name="wmiConnect"/>
<method name="packString"/>
<method name="getMaxStringLen"/>
<method name="showResults"/>
<method name="validateDateTime"/>
<method name="changeToWMIDateTime"/>
<method name="matchPattern"/>
<property name="ScriptingHost" internalName="WScript"/>

这就是Microsoft.CmdLib对象提供的属性和方法,每个方法的实现都可以在cmdlib.wsc里面找到对应的VBS函数或者过程,而且注释都很详细,就算不看代码也可以知道用法。

大致看了一下,除了脚本专家介绍的showResults方法之外,似乎只有changeToWMIDateTime方法有点利用价值。getPassword方法可以用来获取用户输入的密码(不回显),本来挺有用的,只可惜它依赖的ScriptPW.Password依然只存在于XP和2003系统,没有可移植性。

最后Demon提醒一下,这种没有可移植性的对象还是少用为好,不然你的脚本只能在某些系统运行。

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. bbPress积分插件——Virtual Money
  2. 用Visual C++ 6.0(VC6)编译Notepad2
  3. 批处理技术内幕:IF命令
  4. Windows下用TCC编译Lua源码
  5. Ubuntu下安装系统库函数手册

留下回复