Powershell でCompare-objectを使用して、サイズ、最終書き込み時刻、およびバージョン番号に基づいて 2 つのファイルを比較しています。結果を出しています。唯一の問題は、結果からバージョン番号の値を取得する方法です。
function dll_compare(){
param($path1,$path2)
$first = Get-ChildItem -Path $path1 -Filter *.dll
$second = Get-ChildItem -Path $path2 -Filter *.dll
$diff = Compare-Object -ReferenceObject $first -DifferenceObject $second -Property Name, Length, LastWriteTime, VersionInfo -PassThru | Select Name, Length, LastWriteTime, sideindicator,@{n="path";e={$_.fullname}},@{n="VersionInfo";e={$_|Select-Object -ExpandProperty VersionInfo |Select-Object -Property Productversion}}
$diff}
結果は次の形式になります: バージョン情報に "@{ProductVersion=10.0.10240.16384}" の代わりに値を含めたい
Name : PhotoViewer.dll
Length : 1827328
LastWriteTime : 7/10/2015 4:31:20 PM
SideIndicator : <=
path : D:\Site1\Dlls\PhotoViewer.dll
VersionInfo : @{ProductVersion=10.0.10240.16384}