在Windows中隐藏点文件


26

有没有一种方法可以让Windows自动隐藏任何带点前缀的文件(例如,“。svn”),就像在Linux中一样?

Answers:


19

在出现一些问题(attrib命令不允许使用通配符)之后,我想到了这一行:

@for %%X in (.*.*) do attrib +h %%X

只需将其放入一个批处理文件(.bat),它就可以完成该操作(针对该目录)。

如果您希望这样做有几个方向,只需将其设置为每天在该目录上运行一次。

希望这是您所需要的。


5
如果要创建目录,请添加第二行@for /d %%X in (.*.*) do attrib +h %%X
Brian B

您可以直接从cmd运行该文件,只需将其cd运行到所需的父文件夹,然后运行就没有双百分号,只需运行一个:> @for / D%X in(。*)do attrib + h%X
Sergio Abreu

我找到的最佳答案
罗伯托·托马斯(Robertotomás)

6

使用Powershell将以下内容保存在脚本文件中(例如hidedotfiles.ps1),并在您不想隐藏点文件时运行它。

当然,以下别名可以通过使用别名和“ -f表示“ -force”而将“ -r”表示“ -recurse”来简化),但是为了说明起见,我以完整的形式编写了它:

Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)

基本上,Get-ChildItem -recurse -force会获取所有项目,并在所有文件夹中递归搜索,从而强制显示隐藏项目。然后,我们搜索以点开头的文件和文件夹,并仅选择具有隐藏属性的文件。列出所有文件后,我们使用Set-ItemProperty将其属性设置为隐藏。


1
两者Where-ObjectSet-ItemProperty都是不必要的。可以像一样完成它Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
Tom A. Vibeto

4

要隐藏磁盘上的所有点文件/目录(而不是单个目录),我发现此答案最有效:

ATTRIB +H /s /d C:\.*

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.