2

2 つの異なるディレクトリのファイルのバージョン情報を比較したいと思います。

私はこれを行うことができます:

$files1 = (Get-Item "$path1\*.dll").VersionInfo
$files2 = (Get-Item "$path2\*.dll").VersionInfo
compare-object $files1 $files2

しかし、次のようなものが得られます。

入力オブジェクト
-----------
ファイル: path1\AxInterop.ShDocVw.dll...
ファイル: path1\dom.dll...
(等...)
ファイル: path2\AxInterop.ShDocVw.dll...
ファイル: path2\dom.dll...
(等...)

私は次のようなことができると思います:

$files1 = (Get-Item "$path1\*.dll").VersionInfo.ProductVersion
$files2 = (Get-Item "$path2\*.dll").VersionInfo.ProductVersion
compare-object $files1 $files2
$files1 = (Get-Item "$path1\*.dll").VersionInfo.FileVersion
$files2 = (Get-Item "$path2\*.dll").VersionInfo.FileVersion
compare-object $files1 $files2

しかし、違いがある場合は、その違いが何であるかを探しに行かなければなりません。1 つのセットが署名されていて、もう 1 つのセットが署名されていないため、ファイルを直接比較することはできません。

これを行う最善の方法は何ですか?

明確にするために、現在のcompare-objectコマンドレットは、パスが異なることを示しているため、ファイル名が異なると表示されているため、私のニーズを満たしていません。これは私には関係ありません。

ファイル名が同じでバージョン番号が異なる行を比較したいと思います。同じファイル名のバージョン番号に違いがある場合、またはファイル名がテーブルの 1 つに存在しない場合は、違いを示します。

4

1 に答える 1