| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
如何在单个 WQL 查询中搜索多个文件扩展名?
如何在单个 WQL 查询中搜索多个文件扩展名?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 11:11:38
问:

您好,脚本专家!如何在单个 WQL 查询中搜索多个文件扩展名?

-- AH

答:

您好,AH。如果我们没搞错的话,您是想知道这个星期日西雅图海鹰队是否真的参加超级投球比赛。对,这是真的:我们钟爱的海鹰队就要与一些二流球队开赛了。这对于住在西雅图的球迷来说真是太棒了:海鹰队进入了超级投球比赛;华盛顿大学男子篮球队在全国排在第 15 位;它的女子排球队在全国锦标赛中取胜;西雅图超音速 -

嗯,我们提到了女子排球队在全国锦标赛取胜了吗?

实际上,进一步思考之后,我们怀疑您可能想要知道如何在单个 WQL 查询中搜索多个文件扩展名。那么,您为什么不这么说:

strComputer = "."

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")



Set colFiles = objWMIService.ExecQuery _

    ("Select * from CIM_Datafile Where Extension = 'mp3' OR Extension = 'wma'")



For Each objFile in colFiles

    Wscript.Echo "Name: " & objFile.Name

Next

正如您所看到的,这差不多是您能获得的最简单的 WMI 脚本。我们首先连接到本地计算机上的 WMI 服务。然后,创建一个查询来搜索两种类型的文件:具有文件扩展名 mp3 的文件和具有文件扩展名 wma 的文件。检索文件之后,我们设置一个 For Each 循环来遍历此集合并回显每个文件的名称。

此处需注意两个问题。第一,WMI 属性的名称为 Extension(是的,我们不知道为什么不称其为 FileExtension)。第二,请注意我们要搜索扩展名为 mp3 的文件,而不是搜索扩展名为 .mp3 的文件。请确保您删除了那个点;否则脚本不会返回任何数据。

注意:另外一点是:针对整个文件系统运行查询要花费很长时间,这取决于您机器上的文件数量。这并不意味着您不能或不应该这么做;我们只是想提醒大家,像这样的脚本很可能要花费几分钟(或更多)时间来完成。(编辑附注:现在他告诉我们。)

那么,到底如何搜索多个文件扩展名呢?嗯,考虑一下您的任务:您希望获得具有文件扩展名 mp3 或 wma 的文件的列表。当您如此编写该任务时,关键字将是 or;在编写 WQL 查询时,也是如此。再让我们看一下该查询:

Set colFiles = objWMIService.ExecQuery _

    ("Select * from CIM_Datafile Where Extension = 'mp3' OR Extension = 'wma'")

您已经找到了答案:Where Extension = 'mp3' OR Extension = 'wma'。关键是记住您想要的文件扩展名为 mp3 或 wma。人们经常会误以为“我想要的是文件扩展名为 mp3 的所有文件以及文件扩展名为 wma 的所有文件。”结果,他们最后编写类似下面的查询:

Set colFiles = objWMIService.ExecQuery _

    ("Select * from CIM_Datafile Where Extension = 'mp3' AND Extension = 'wma'")

虽然我们不知道在您的计算机上存储了什么文件,但是我们已经知道这个查询会找到多少文件:0. 为什么?因为,在此我们要说的是:找到具有文件扩展名 mp3 且具有文件扩展名 wma 的所有文件。不用说,具有两种文件扩展名的文件不会有很多。不要弄混 AND 和 OR。在您想要扩展搜索时使用 OR,想要约束搜索时使用 AND。

还应注意,每次您都需要指定属性:Extension = 'mp3' OR Extension = 'wma'。如果试图投机取巧的话,您的脚本将不会起作用:Extension = 'mp3' OR 'wma'

最后,我们将指出,您也可以对文件扩展名以外的内容使用 OR 运算符。例如,此处有一个查询,它返回所有已停止或暂停的服务的列表:

Set colFiles = objWMIService.ExecQuery _

    ("Select * from Win32_Service Where State = 'Stopped' OR State = 'Paused'")

同样,您可以包括两个以上的 OR 子句。如果对带 wav 扩展名的文件也感兴趣,那么就将以下代码添加到查询中:

Set colFiles = objWMIService.ExecQuery _

    ("Select * from CIM_Datafile Where Extension = 'mp3' OR Extension = 'wma' OR Extension = 'wav'")

哦,还有一件事:去看海鹰队!

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    CSO们如何应对新技术的安
    普通企业如何应对黑客攻
    企业该如何防范由VoIP引
    浅谈IT如何实现企业的应
    黑客与正规企业是如何串
    如何无限制申请Gmail 2.
    企业如何避免人为因素的
    社会工程学:如何利用黑客
    如何在一个文件被添加到
    如何将“珊瑚虫”好友请

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览