我注意到,无论是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 /A
仅dir /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)