При всем уважении к вопросу и ответу от @ mklement0.
Использование Beyond Compare в скрипте PowerShell ставит телегу перед лошадью .
Там в PowerShell есть множество командлетов , которые позволят вам легко сравнивать папки (и многое другое), не занимаясь очисткой текста. Как использовать Compare-Object вместе с Get-ChildItem для данного примера:
Compare-Object (Get-ChildItem .\Test) (Get-ChildItem .\Test1) -Property Name, Length, LastWriteTime
Если вы хотите сделать рекурсивное сравнение относительно путь , вы можете сделать:
Compare-Object (Get-ChildItem .\Test -Recurse -Name) (Get-ChildItem .\Test1 -Recurse -Name)
Обратите внимание, что параметр -Name
будет отображать только относительный путь строки , если вы также хотите сравнить Length
и LastWriteTime
Вы можете сделать:
$TestFolder = 'C:\Test'
$Test1Folder = 'C:\Test1'
$TestFiles = Get-ChildItem $TestFolder -File -Recurse |
Select-Object *,@{N='RelativePath'; E={$_.FullName.SubString($TestFolder.Length)}}
$Test1Files = Get-ChildItem $Test1Folder -File -Recurse |
Select-Object *,@{N='RelativePath'; E={$_.FullName.SubString($Test1Folder.Length)}}
Compare-Object $TestFiles $Test1Files -Property RelativePath,Length,LastWriteTime