У меня есть много папок в D:\FolderA и в какой-то момент большинство (но не все) из папок были скопированы в D:\FolderB. Каков наилучший способ перечислить все "отсутствующие" папки в FolderB?
2 ответа
Если вы используете Windows XP, вы можете использовать утилиту Windiff.exe для сравнения двух каталогов.
Другой альтернативой является использование WinMerge, который является средством различий и слияния с открытым исходным кодом для Windows. WinMerge может сравнивать как папки, так и файлы, представляя различия в визуальном текстовом формате, который легко понять и обрабатывать. Ниже несколько скриншотов.
Результаты сравнения папок:
Папка Сравнение дерева просмотра:
Это должно быть достаточно просто в PowerShell.
Цель: получить список всех подпапок папки $SourceFolder
для которых папка с таким именем не существует в папке $DestFolder
. Поместите следующее в файл скрипта:
param([string]$SourceFolder, [string]$DestFolder)
Get-ChildItem $SourceFolder| Where-Object { $_.PSIsContainer -and -not (Test-Path ( Join-Path $DestFolder$_.Name ))}
Выходные данные могут быть сохранены в файл или обработаны (например, для создания сценария для копирования отсутствующих папок).