Первое, что вам нужно сделать, это выяснить, не возникнут ли какие-либо коллизии имен файлов при перемещении файлов из нескольких каталогов в один каталог.
=== Find-DupeFilenames.ps1
$h = @{}
Get-ChildItem -File -Recurse |
ForEach-Object {
if ($h.ContainsKey($_.Name)) {
"Name conflict {0} is in both {1} and {2}" -f @($_.Name, $h[$_.Name], $_.DirectoryName)
} else {
$h.Add($_.Name, $_.DirectoryName)
}
}
Если вам нужно запустить это из командной строки cmd.exe, используйте это для быстрого подсчета.
CD /D C:\mainDir
powershell -NoLogo -NoProfile -Command "(C:\src\Find-DupeFilenames.ps1 | Measure-Object).Count"
Используйте это, чтобы получить список всех конфликтующих имен файлов.
CD /D C:\mainDir
powershell -NoLogo -NoProfile -Command ".\Find-DupeFilenames.bat"