如何取消隐藏文件夹中的所有文件? - 范文中心

如何取消隐藏文件夹中的所有文件?

10/02

问:

您好,脚本专家!如何运行脚本取消隐藏文件夹中的所有文件?

-- GA

答:

您好,GA。您知道我们中的一位脚本专家在年少时和邻居家的其他小孩花费无数的时间玩各种捉迷藏。事实上,这位脚本专家仍清晰地记得躺在浅沟中,让其他组的人从他身上走过,却不知道他就在那儿。(这种方法如此奏效,以致于他正认真考虑在自己的办公室挖一条浅沟,这样有人找他的时候就可以躲在浅沟里了。)

回到那些日子,您不会想要一种能自动取消隐藏一切的脚本;这种脚本可能很有用,但却没什么乐趣。但作为系统管理员,您大概并不愿意与文件玩捉迷藏。您或许乐意接受能自动取消隐藏文件夹中所有文件的脚本,也就是类似如下的脚本:

strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set FileList = objWMIService.ExecQuery _("ASSOCIATORS OF {Win32_Directory.Name=‘c:\Scripts‘} Where " _& "ResultClass = CIM_DataFile")Set objFSO = CreateObject("Scripting.FileSystemObject")For Each objFile In FileListSet objFile = objFSO.GetFile(objFile.Name)If objFile.Attributes AND 2 ThenobjFile.Attributes = objFile.Attributes XOR 2End IfNext

此脚本有些不同寻常,因为我们同时使用了 WMI 和 FileSystemObject。(当然,这听起来很危险,其实不然:毕竟,我们是经过专门训练的专业人员。)首先连接到本地计算机的 WMI 服务(我们马上就会谈到这一点),然后使用以下查询检索 C:\Scripts 文件夹下所有文件的集合(也就是 CIM_DataFile 类的所有实例):

Set FileList = objWMIService.ExecQuery _("ASSOCIATORS OF {Win32_Directory.Name=‘c:\Scripts‘} Where " _& "ResultClass = CIM_DataFile")

我们使用 WMI 检索文件的集合,因为使用它十分快捷,并且在多数情况下可以使用同一脚本向外从远程计算机检索文件的集合。然而遗憾的是,WMI 无法用于取消隐藏文件;CIM_DataFile 类确实包括一个名为 Hidden 的属性,但它是只读属性。这就是我们必须同时使用 WMI 和 FileSystemObject 的原因:我们使用 WMI 获取文件的集合,然后使用 FileSystemObject 取消隐藏这些文件。

令人沮丧的是,这也意味着此脚本必须在本地计算机上运行;因为与 WMI 不同,FileSystemObject 无法远程工作。真是差劲。

不管怎样,获得文件集合后,我们创建一个 FileSystemObject 实例然后建立一个 For Each 循环以遍历此组文件。在 For Each 循环内,使用下行代码绑定到每个文件:

Set objFile = objFSO.GetFile(objFile.Name)

正如您所见,我们只是调用了 GetFile 方法,为其传递 Name 属性的值(使用 WMI 获得)。Name 属性相当于文件路径;因此文件“名”至少在 WMI 中类似于 C:\Scripts\My_file.txt。

绑定到给定文件后,检查文件是否隐藏;隐藏或未隐藏正好是文件属性的一部分。使用下行代码检查是否打开了隐藏属性的“开关”。如果开关打开、文件隐藏,则此语句为 True。如果开关关闭、文件未隐藏,此语句为 False:

If objFile.Attributes AND 2 Then 注意。文件属性是作为 bitmask 属性存储的。在本专栏中,我们不详细说明 bitmask 属性的详细内容,但您可以在 Microsoft Windows 2000 脚本指南 中找到 bitmask 的详细解释和使用方法。

为什么要关心文件是否已隐藏?取消对隐藏文件的隐藏最简单的方法是将开关由开转为关,事实上,下行代码就起到这一作用:

objFile.Attributes = objFile.Attributes XOR 2

但是,XOR 运算符并非特别聪明:它只是将开关由一种状态转为另一状态。如果开关为开,就将其关闭;如果开关为关,就将其打开。这就是我们检查文件当前状态的原因。如果文件被隐藏,则要使用 XOR 将开关由打开转为关闭。但是,如果文件未被隐藏,应该怎么办呢?这种情况下,不需要转换开关;这样做会隐藏文件。(因为 XOR 会将开关由关转为开。)因此在开始转换开关前,应检查每个文件的值。

运行此脚本 – 找到你们了,都出来吧!– 之前隐藏的所有文件都会重新出现。然后轮到您藏起来,看看这些文件能否找到您。


相关内容

  • 网页三剑客快捷键
    网页三剑客快捷键 网页三剑客快捷键 Dreamweaver 快捷键大全 1.菜单命令快捷操作键 目的快捷操作键 新建一个网页 Ctrl + N 打开一个存在的网页 Ctrl + O 在框架中打开 Ctrl + Shift + O 关闭当前网 ...
  • 20**年全国专业技术人员计算机应用能力考试科目模块全真模拟试题答案
    全国专业技术人员计算机应用能力考试科目模块全真模拟试题答案 全国专业技术人员计算机应用能力考试全真模拟考试系统(中文windows xp 操作系统) 上机模拟考试试题(第一套) 第一套 1. 请将Windows XP中文版注销. 点击左下角 ...
  • 如何隐藏文件夹(文件)及查看隐藏文件
    如何隐藏文件夹(文件)及查看隐藏文件 推荐一.设置隐藏文件夹的几种方法: 1.右键要隐藏的文件夹,点/属性/选中隐藏:再打开/我的电脑/工具//文件夹选项/查看/勾选隐藏所有文件和文件夹/确定即可.若要使用该隐藏文件夹,可打开/我的电脑/工 ...
  • 电脑常见问题处理大全(三)
    1:双击无法打开文件夹 问:我的电脑出了问题,在资源浏览器或者我的电脑里面无法打开文件夹,双击鼠标不是打开文件夹而是进入了搜索界面,请问这是为什么? 答:可以修改注册表来恢复,进入注册表的HKEY_CLASSES_ROOT\\Directo ...
  • 20**年计算机一级上机操作试题及答案
    小编为大家推荐以下的选择题及答案,希望能帮助大家通过计算机等级考试,仅供参考! 1.在Windows 的网络方式中欲打开其它计算机中的文档时,由地址的完整格式是__A___. (A)\计算机名\路径名\文档名 (B)文档名\路径名\计算机名 ...
  • 四川农信社考试历年真题汇总(六)
    四川农信社考试历年真题汇总(六) 一.选择题 1.世界上第一台电子计算机诞生于 c . A.1942年 B.1944年 C.1946年 D.1948年 2.第一代电子计算机使用的逻辑元件是 a . A.电子管 B.晶体管 C.中小规模集成电 ...
  • 资源管理器教案
    资源管理器" 教学设计 " 资源管理器" 教学设计 江苏省泰兴中学 戴冬梅[设计思路]: 结合多媒体课件的演示,给学生一个直观的印象,帮助学生掌握对资源管理器功能的应用,并在讲课的过程中让学生参与实践操作,从而 ...
  • 电脑查询系统的各种命令
    分享到i 贴吧 添加到搜藏 已解决 电脑查询系统的各种命令 悬赏分:0 - 解决时间:2007-9-1 17:13 跪求 提问者: 海港love 明 - 一级 最佳答案 winver---------检查Windows 版本 wmimgmt ...
  • Word中分隔符分页符分栏符换行符分节符的用法
    Word中分隔符 (分页符.分栏符.换行符.分节符)的用法 在写论文时,论文格式要求目录需要用"Ⅰ.Ⅱ.Ⅲ..."作为页码,正文要用"1.2.3..."作为页码.而有的用户此时就要将目录存为一个单独的 ...