标题: VBS中的Microsoft.CmdLib对象
作者: Demon
链接: https://demon.tw/programming/vbs-microsoft-cmdlib.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
最早提到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提醒一下,这种没有可移植性的对象还是少用为好,不然你的脚本只能在某些系统运行。
赞赏微信赞赏支付宝赞赏
随机文章: