如何在 Windows 上对隐藏文件进行递归文件搜索?

如何在 Windows 上对隐藏文件进行递归文件搜索?

我注意到,无论是cmd还是都powershell无法对具有隐藏属性的文件进行递归文件搜索。

那么有什么办法可以解决这个问题吗?我的意思是,除了必须从相关文件中删除隐藏属性之外,我需要事先知道它们的位置,这当然会使整个过程变得毫无意义。

为什么它不能处理具有隐藏属性的文件?这是某种安全功能吗?

示例(cmd)


C:\>dir /b
Intel
PerfLogs
plant
Program Files
Program Files (x86)
Users
Windows

C:\>cd plant

C:\plant>dir /b
banana.txt

C:\plant>attrib banana.txt
A            C:\plant\banana.txt

C:\plant>attrib -a +h banana.txt

C:\plant>dir /b

C:\plant>dir /b banana.txt
File Not Found

C:\plant>cd /

C:\>dir /b /s banana.txt
File Not Found

C:\>

答案1

使用以下方法列出隐藏文件电源外壳您必须使用参数-Force。因此,通过使用,Get-ChildItem -Force -Recurse您将获得所有文件(包括隐藏文件)的列表。

Get-Help Get-ChildItem -Examples

Force 参数将隐藏文件添加到显示中。

是的,它不直观,而且参数本身的描述也没有告诉你。

对于命令行本身,它将dir /Adir /AH列出隐藏文件,但我不确定您如何搜索该输出。

答案2

在 Windows 命令提示符中对所有文件使用 /a 和 /s 开关并递归:

/A          Displays files with specified attributes.
/S          Displays files in specified directory and all subdirectories.

例子

dir/a/s

在 Powershell 中,我使用相同的方法,只是用 -force 代替 /a 来显示所有文件:

dir -force -s

或者

dir -force -r

Powershell 中还有 ls 可以少输入 1 个字符!

ls -force -s

或者

ls -force -r

答案3

最终答案是:

  • 命令:dir /a:H /s

  • POWERSHELL:(ls -ah -recurse 选项 -force)

相关内容