如何隐藏硬盘上任何位置具有特定名称的所有文件?

如何隐藏硬盘上任何位置具有特定名称的所有文件?

基本上我想要的是隐藏所有名为

  • .gitignore
  • gradle
  • gradle.bat
  • *.iml
  • *.ipr
  • *.iws
  • .classpath
  • 。项目

但我想要它们对于我的所有项目,无论它们位于硬盘的哪个位置,默认情况下都是隐藏的,并且不需要为任何文件设置隐藏属性

我只想要一条规则或类似“不显示系统文件”的东西,但是可以自定义的规则,这样我就可以知道我想隐藏哪些文件。

笔记:我只使用 Windows 资源管理器进行导航。

答案1

我喜欢 Dave Rook 的回答,并想出了一个更简单的解决方案......

对于每个要求,只需转到根驱动器并输入

attrib (filetype) /S +h

例如

attrib *.ipr /S +h

将使所有 ipr 文件成为所有子目录中的隐藏文件。

但是,这个答案或 Dave Rook 的答案都不符合您的“自动”要求,尤其是不符合不设置隐藏标志的要求。

如果您想隐藏它们而不设置隐藏属性,我能想到的唯一方法是通过 shell 扩展来将其从资源管理器中隐藏起来 - 但是,这是一个非常危险的事情,因为这是一个安全风险在你的机器上/你开始进入 rootkit 的领域....你需要自己编写一些程序,然后将其添加到注册表中。

答案2

您可以使用批处理脚本来执行此操作 -http://www.xxcopy.com/xxcopy06.htm

理论上,您将循环遍历系统文件以查找特定扩展名,并在找到后更改属性。尽管该属性是 H(代表隐藏)!

关于如何在批处理脚本中循环的教程有很多。此代码查找文件具有特定扩展名,然后复制它们 - 您可以编辑它,删除复制部分并添加属性代码

未经测试,但类似于(您必须运行它多次,更改设置 ftype=*.Extension

set dSource=C:\Main directory\sub directory
set dTarget=D:\Documents
set fType=*.doc
for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (
    attrib /d +s +h "%%f"
)

如果上述代码不起作用,那么您可能必须将文件复制到其自身(覆盖自身),并在复制时更改属性类型。

相关内容