我正在寻找最简单,最少侵入性的方法来监控大型驱动器md5指纹识别的进度,许多文件(8 TB,200万)。
什么是最好的选择,例如,如果卡住或开始无限循环,我可以看到故障文件?
代码:
Get-childitem -recurse -file | select-object @{n="Hash";e={get-filehash -algorithm MD5 -path $_.FullName | Select-object -expandproperty Hash}},lastwritetime,length,fullname | export-csv "$((Get-Date).ToString("yyyyMMdd_HHmmss"))_filelistcsv_MD5_LWT_size_path_file.csv" -notypeinformation
AAAA
答案 0 :(得分:1)
如果要列出进度,您需要知道进程的结束位置,因此您需要在开始操作之前列出所有文件。
Write-Host "Listing Files..." -Fore Yellow
$AllFiles = Get-ChildItem -Recurse -File
$CurrentFile = 0 ; $TotalFiles = $AllFiles.Count
Write-Host "Hashing Files..." -Fore Yellow
$AllHashes = foreach ($File in $AllFiles){
Write-Progress -Activity "Hashing Files" -Status "$($CurrentFile)/$($TotalFiles) $($File.FullName)" -PercentComplete (($CurrentFile++/$TotalFiles)*100)
[PSCustomObject]@{
File = $File.FullName
Hash = (Get-FileHash -LiteralPath $File.FullName -Algorithm MD5).Hash
LastWriteTime = $File.LastWriteTime
Size = $File.Length
}
}
$AllHashes | Export-Csv "File.csv" -NoTypeInformation
这将为您提供一个带有进度条的漂亮标题,如下所示:
ISE:
普通壳牌: