如何监控大型驱动器/多个文件的md5散列的进度?

时间:2017-11-21 14:09:38

标签: windows powershell

我正在寻找最简单,最少侵入性的方法来监控大型驱动器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

1 个答案:

答案 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:

enter image description here

普通壳牌:

enter image description here