Я работаю над сценарием, который сравнивает содержимое двух каталогов с файлами с одинаковыми именами и возвращает файлы, которые отличаются.property
Я использую, чтобы определить, отличаются ли файлы LastWriteTime
и Size
.
Вот мой текущий скрипт:
$var1 = Get-ChildItem -path C:\proj\BIN\ -Recurse
$var2 = Get-ChildItem -path C:\proj2\BIN\ -Recurse
Compare-Object -ReferenceObject $var1 -DifferenceObject $var2 -Property Name, LastWriteTime, Size | Sort-Object Name
Вот мой текущий вывод:
Name LastWriteTime Size SideIndicator
---- ------------- ---- -------------
folder1 6/1/2018 3:20:37 PM =>
folder1 5/21/2018 12:08:36 PM <=
folder2 6/1/2018 3:20:37 PM =>
folder2 5/21/2018 12:08:36 PM <=
CustomReports 6/1/2018 3:20:37 PM =>
CustomReports 5/21/2018 12:08:39 PM <=
folder3 6/1/2018 3:20:38 PM =>
folder3 5/21/2018 12:08:38 PM <=
blank.XML 6/1/2018 3:37:49 PM =>
blank.XML 11/22/2017 12:36:04 PM <=
Насколько я знаю, причина в том, что размер пуст, потому что ониодинакового размера (которые они есть).Если это правда, нет проблем.Если это просто совпадение, тогда мне нужно будет исправить это.
РЕДАКТИРОВАТЬ: size
неверно.length
является правильным property
.
Я хочу изменить вывод с Name
на Fullname
.Если я изменю его в моем скрипте, он перечислит все файлы, потому что они находятся в разных каталогах.
Вместо этого я добавил эту трубу в последнюю строку к этому:
| Format-Table -property FullName, LastWriteTime, Size
Насколько я понимаю, скрипт должен compare-object
основываться на name, lastWriteTime, size
и на основании этих результатов sort-object
на name
и затем верните fullname, lastWriteTime, size
из этих результатов.
Мой новый вывод:
FullName LastWriteTime Size
-------- ------------- ----
6/1/2018 3:20:37 PM
5/21/2018 12:08:36 PM
6/1/2018 3:20:37 PM
5/21/2018 12:08:36 PM
6/1/2018 3:20:37 PM
5/21/2018 12:08:39 PM
6/1/2018 3:20:38 PM