またChatgptに作らせてみたシリーズ。
Powershellで指定した拡張子のファイルの複製をリストアップするスクリプト。
$basePath = "C:\tmp\"
$fileExtensions = @(".jpg", ".jpeg", ".png", ".bmp", ".gif")
# Get all files recursively
$targetFiles = Get-ChildItem $basePath -Recurse | Where-Object { $_.Extension -in $fileExtensions }
# Group files by content hash
$hashGroups = $targetFiles | Group-Object { (Get-FileHash $_.FullName).Hash }
# Filter groups that have more than one file with the same hash
$duplicateGroups = $hashGroups | Where-Object { $_.Count -gt 1 }
# Display information about duplicate files
foreach ($group in $duplicateGroups) {
Write-Host "Duplicate files with hash $($group.Name):"
foreach ($file in $group.Group) {
Write-Host " $($file.FullName) (size $($file.Length))"
}
}
basePath fileExtensions を編集すれば各自の用途に応じて利用可能。
chatgptはハッシュ値で似たfileも検出できる的回答をしていたが、それは仕組み的に違うと思うが、同一ファイルなら使える事を確認済み。
丸っと信じられるレベルではないがやっぱり生産性は高い。
ちゃんと真贋を見極める知見さえあれば使える。
以下動作の解説。