我正在编写一个脚本来收集 C: 驱动器中的所有文件哈希,但不会抓取所有内容。有人有想法么?我尝试了各种各样的东西。
gci -Path C:\ -Recurse | Get-FileHash -Algorithm MD5 | Out-File C:\test.txt
我正在编写一个脚本来收集 C: 驱动器中的所有文件哈希,但不会抓取所有内容。有人有想法么?我尝试了各种各样的东西。
gci -Path C:\ -Recurse | Get-FileHash -Algorithm MD5 | Out-File C:\test.txt
由于您正在计算文件哈希,因此请使用开关Get-ChildItem
仅返回文件。-File
为了也处理隐藏文件,另外使用-Force
开关。
您必须使用提升(以管理员身份)运行该命令,以确保您可以访问所有文件,但仍可能拒绝访问某些目录和文件。
C:\Users\jdoe\Cookies
),这些联结仅用于向后兼容;但是,您可以忽略这些,因为它们只是指向可以访问的其他目录。Get-ChildItem
在这种情况下,即使它们是可访问的,也会忽略任何指向其他驱动器或目录(联结、符号链接、挂载点)的 NTFS 重解析点 - 这可能是您想要的。-ea SilentlyContinue -ev errs
(缩写:)-ErrorAction SilentlyContinue -ErrorVariable errs
,您可以在之后检查数组$errs
以查看哪些文件无法访问。# Examine $errs afterwards to see which paths couldn't be accessed.
Get-ChildItem C:\ -Recurse -File -Force -ea SilentlyContinue -ev errs |
Get-FileHash -Algorithm MD5 |
Out-File C:\test.txt
注意:该Out-File
cmdlet 将命令输出的用于显示的表示形式保存到一个文件中,该文件不是为进一步的编程处理而设计的。
要保存适合后续编程处理的表示形式,请使用 cmdlet,例如Export-Csv
.