Bar

PowerShell ファイルの存在有無をBasenameで比較する方法

PowerShell でファイル一覧をBasenameで比較し差分を得るサンプルです。

やりたい事

  1. 二つのファイル一覧を比較し、差分を抽出したい
  2. ファイルの拡張子は無視したい

ファイルの存在有無をBasenameで比較する

ファイルの拡張子を無視した状態でファイル一覧を抽出するには、抽出結果のbasenameを取得します。
その結果をCompare-Object コマンドレットで比較するだけです。
$d1 = Get-ChildItem -Path Folder1
$d2 = Get-ChildItem -Path Folder2

# 比較
Compare-Object -ReferenceObject $d1.basename -DifferenceObject $d2.basename

サンプル

Windows 10 Insider Preview Build 14942のローカル グループ ポリシーで使うadmxファイルとadmlファイルの一覧を比較すると以下のような結果が得られました。