| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
我如何才能知道某个文件夹是否包含带有特定文件扩展名的文件?
我如何才能知道某个文件夹是否包含带有特定文件扩展名的文件?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-23 20:12:28
问:

嗨,Scripting Guy!我如何验证某个文件夹中是否存在带有特定文件扩展名的文件?

-- GM

答:

您好,GM。这其实是很简单的事情。我们只需编写一个 WMI 查询,其中需要包含要检查的文件夹的路径和我们打算查找的文件扩展名。例如,下面的脚本可检索位于 C:/Scripts 文件夹中的所有 .txt 文件的集合:

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



Set colFiles = objWMIService._ ExecQuery("SELECT * FROM CIM_DataFile WHERE Path = '//Scripts//' " & _ "AND Drive = 'C:' AND Extension = 'txt'")



Wscript.Echo "Number of .txt files found: " & colFiles.Count 

如果您仔细观察此脚本(大家对脚本之类的东西一向都看得很仔细的,不是吗?),您会发现一些情况。第一,我们没有将路径指定为 C:/Scripts;而是将驱动器(“C:”)与文件夹(“Scripts”)分开了。为什么这样做呢?因为,不论是好是坏,这就是 CIM_DataFile 类的运行方式,它将我们所说的文件路径分成了驱动器和文件夹。实际上,驱动器参数在此是可选项;我们可以省略它,除非我们还有一个名为 D:/Scripts 的文件夹。如果是这种情况,驱动器参数就成了必选项;如果省略它,查询将返回所有位于路径 Scripts 中的文件夹中的文件。除了 C:/Scripts 外,还有 D:/Scripts(以及 E:/Scripts 和 F:/Scripts 等等)。

第二,您可能已经注意到了我们在路径两边使用了“//”;这样,我们使用的是“//Scripts//”,而不是 /Scripts/(即 C:/Scripts)。为什么?再强调一下,这正是 WMI 的运行方式;无论何时您在 WHERE 子句中包含文件路径,您都需要使用两个 //。如果想检查文件夹 C:/Documents and Settings/Ken Myer/Desktop/Work Files 是否包含 .txt 文件,该怎么办呢?这种情况下,WHERE 子句应类似于:

 WHERE Path = '//Documents and Settings//Ken Myer//Desktop//Work Files// 

注意,路径结尾同样有两个 //。这很重要;不要忽略它们。(除非您不在乎该脚本是否真的能用。)在我们忙着编写代码的时候,您瞧我们在指定文件扩展名时没有包含句点;所以,扩展名只是“txt”,而不是“.txt”。

获取集合后,我们只需回显该集合的“Count”属性的值。这将告诉我们找到了多少 .txt 文件。如果 Count 为 0,则说明我们没有找到任何 .txt 文件;如果 Count 为 7,我们找到了 7 个 .txt 文件。如果 – 您自己可以推断其他情况。

我们说过这很简单,对吧。嘿,偶尔我们也说到做到呀!

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

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

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