Win2003里用命令行刷新硬件列表,以扫描硬件改动的实现代码


如果是想搜索新硬件,还真不知道该用什么命令。系统的PNP可以自动搜索到新硬件,所以估计也没必要手动刷新搜索。
如果是想查看设备的变动,倒是可以用命令行来实现。
方法一、使用WMIC(WMI命令行)
使用WMIC需要管理员权限,第一次运行会进行安装和配置。
运行下面的命令可以把系统中的驱动列表保存到sysdriver.txt:

wmic SYSDRIVER get DisplayName >sysdriver.txt

再次运行,然后使用fc就可以判断是否有变动

wmic SYSDRIVER get DisplayName >sysdriver1.txt
fc sysdirver.txt sysdriver1.txt

方法二、使用WMI脚本
可以使用js或vbs来运行脚本,不需要管理员权限。
如下方法可以得到驱动类表,然后就可以使用fc比较两次运行的结果了:

cscript //NoLogo sysdriver.vbs >sysdriver.txt

sysdriver.vbs内容如下

VBScript code
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_SystemDriver", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
WScript.Echo objItem.DisplayName
Next

使用脚本调用系统的关机对话框实现代码
以前有介绍如何使用命令行调用系统的关机对话框:具体方法:开始/运行:rundll32.exeshell32.dll#60但是,上述方法会存在一问题,XP下无法正常使用该方

获取外网IP并发送到指定邮箱的vbs代码[已测]
''getIPsethttp=createobject("Microsoft.XMLHTTP")ipp="http://www.ip138.com/ip2city.asp"http.open"get",ipp,falsehttp.sendss=bytes2BSTR(Http.responsebody)intStrA=InStr(1,ss,"[",1)+1sss=mid(ss,intStrA)int

vbscript的骨灰级写法计算1到100的和
这篇日志完全是看了一篇日志后的启发,原文为:邪恶的eval和newFunction。很少使用newArray的方式来定义数组,没想到newArray有这么一个妙用,通过newArray(n