我想在PowerShell中創建一個分析recursevily目錄的腳本,並從第一個目錄中的所有文件和所有文件中的所有文件獲取所有哈希MD5。在Powershell中查找文件副本的腳本
之後,我想比較對方之間的所有散列,看看哪一個是副本,然後給出一個選項來刪除這些副本或不。
目前,我有這樣的:
$UserInput=Read-Host
Get-ChildItem -Path $UserInput -Recurse
$someFilePath = $UserInput
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($someFilePath)))
$hash
的主要問題是在散列部,我在調用「ReadAllBytes」得到一個錯誤。
我也懷疑如果創建一個數組,所以當我比較散列時,如果它們相等,則將副本放在數組中,因此刪除它們「更容易」。
您認爲如何? (我也不確定我是否正確使用「SomeFilePath」,MD5或哈希)。
您定位的是哪個版本的PowerShell?您可以將所有文件哈希卸載到'Get-FileHash',它將支持相對路徑和PS提供程序路徑。 –
PS.Version:5.1.14393.1198 BuildVersion 10.0.14393.1198 –