Вы можете сделать это следующим образом:
$FilePath = '.\path\to\your\files'
$File = 'c:\script\mismatchfound.txt'
$CompareFiles = Get-ChildItem $FilePath -File | Sort-Object LastWriteTime | Select-Object -Last 2
If ($Files.count -eq 2) {
$Ref = get-content $CompareFiles[0]
$Dif = get-content $CompareFiles[1]
Compare-Object -ReferenceObject $ref -DifferenceObject $dif -CaseSensitive | Format-table InputObject, SideIndicator -Autosize | out-file $file -Width 200
}
Else{
Write-Error '2 files not returned.'
}
При этом Get-ChildItem
возвращает только файлы по пути, указанному вами в $FilePath
.Затем он использует Sort-Object
, чтобы отсортировать их по атрибуту LastWriteTime
файлов.Затем он использует Select-Object
, чтобы отфильтровать только два последних объекта, возвращенных в этой коллекции.
Затем мы используем if
, чтобы проверить, что у нас есть два файла, и, если мы это сделаем, поместим их в $Ref
и $Dif
переменных и используйте Compare-Object
для вашего кода.
Если два файла не возвращаются, мы возвращаем ошибку.