电脑怎么找到隐藏的文件夹:使用 PowerShell隐藏文件夹

我的磁盘驱动器上有一个主文件夹,其中包含 50 个其他文件夹。现在,我想隐藏这 50 个文件夹。我可以简单地右键单击并选择“隐藏”属性复选框,但我正在寻找一种更快的方法。有什么建议吗?

Windows 8。

33

接受的答案存在潜在的安全问题。

通过覆盖整个Attributes位字段,请注意,以前在文件或文件夹上定义的任何其他属性(只读,加密,...)将被静默删除。

使用二进制 OR 防止此行为:

Get-Item .\your_folder -Force | foreach { $_.Attributes = $_.Attributes -bor "Hidden" }
3

其他两个答案都有问题。这是一个根据注释修复它们的答案,无论是简短的符号还是较长的符号:

gci -r $folder | % { $_.Attributes = $_.Attributes -bor "Hidden" }
# alternatively
Get-ChildItem -Recurse $folder | ForEach-Object { $_.Attributes = $_.Attributes -bor "Hidden" }

解释:

Get-ChildItem(别名gcils)中列出了文件夹中的文件。-Recurse(别名-r)还列出了子文件夹,子文件夹的子文件夹中的文件。-Force其他答案中的参数不是真的需要:它的目的是列出已经隐藏的文件 br

gci -r -fo $folder | % { $_.attributes -bor "Hidden" -bxor  "Hidden" }

ForEach-Object(别名%foreach)迭代输入对象,其参数是一个脚本块{ ... },其中当前对象是特殊变量$_

在该脚本块中,$_是一个System.IO.FileSystemInfo。它的Attribute参数包含文件的属性。这是一个FileAttribute enum。其中一个可能的属性是“Hidden”(枚举中的第二位,但它并不重要)。

-bor (bitwise or) operator将“Hidden”位添加到枚举。请注意,=运算符将覆盖该文件的所有其他属性,这可能是有问题的。

2

简单命令隐藏文件夹

attrib +h TestFolder
1

请注意,使用$f.Attributes += 'Hidden'$f.Attributes -= 'Hidden'实际上将切换隐藏的标志,即在已经隐藏的文件上使用$f.Attributes += 'Hidden'将取消隐藏它,反之亦然。

隐藏前面帖子中提到的项目的示例是幂等的,即:

$f.Attributes = $f.Attributes -bor [System.IO.FileAttributes]::Hidden

要取消幂等隐藏,可以使用:

$f.Attributes = $f.Attributes -band (-bnot (1 -shl ([Math]::Log2([Int][System.IO.FileAttributes]::Hidden))))

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(427)
Windows升级程序:在XAMPPforWindows中升级PHP
上一篇
Python运动仿真:Python鼠标运动仿真在游戏中的应用
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(82条)