在 Windows 中隐藏点文件

mgb*_*wen 29 windows dotfiles

有没有办法让 Windows 自动隐藏任何以点为前缀的文件(例如“.svn”),就像在 Linux 中所做的那样?

Kra*_*aos 20

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

@for %%X in (.*.*) do attrib +h %%X
Run Code Online (Sandbox Code Playgroud)

只需将它放在一个批处理文件(.bat) 中,它就可以解决问题(对于该目录)。

如果你想在几个目录中使用它,只需将它设置为每天在该目录上运行一次。

希望这是你所需要的。

  • 如果要做目录,在 (.*.*) do attrib +h %%X 中添加第二行`@for /d %%X` (5认同)

小智 7

使用 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)
Run Code Online (Sandbox Code Playgroud)

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

  • `Where-Object` 和 `Set-ItemProperty` 都是不必要的。它也可以像`Get-ChildItem ".*" -Recurse -Force | 一样完成。ForEach-Object { $_.Attributes += "Hidden" }`。 (2认同)

小智 5

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

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