• 追加された行はこの色です。
  • 削除された行はこの色です。
* 2つのフォルダ内を比較する - PowerShell [#q9cba995]

** 更新日時が直近10件を抜き出す(サブディレクトリを含める) [#q649e909]

 PS> dir -r dir1 -File | sort LastWriteTime -Descending | select -First 10
 PS> dir -r dir2 -File | sort LastWriteTime -Descending | select -First 10

** ファイル名で比較する(サブディレクトリを含めない) [#haf9699a]

 PS> $d1 = gci dir1
 PS> $d2 = gci dir2
 PS> compare $d1 $d2
 PS> compare $d1 $d2 -passthru | select fullname

** ファイル名他で比較する(サブディレクトリを含める) [#rfe4f16c]

*** ファイル名とファイルサイズで比較する [#y1de2f1a]

 PS> $map1 = @{}; cd dir1; dir -r -file | % { $p = Resolve-Path -Relative $_.FullName; $map1[$p] = ($p,$_.LastWriteTime,$_.Length) -join "," }; cd ..
 PS> $map2 = @{}; cd dir2; dir -r -file | % { $p = Resolve-Path -Relative $_.FullName; $map2[$p] = ($p,$_.LastWriteTime,$_.Length) -join "," }; cd ..
 PS> $map1.Keys + $map2.Keys | ? { $map1[$_] -ne $map2[$_] } | % { if (!$map1.containskey($_)) { "2 only: " + $_ } elseif (!$map2.containskey($_)) { "1 only: " + $_ } else { "differ: " + $_ } } | sort | gu
 PS> $map1.Keys + $map2.Keys | ? { $map1[$_] -ne $map2[$_] }

*** ファイル名とファイルサイズと更新日時で比較する [#k1a4a9c2]

 PS> $map1 = @{}; cd dir1; dir -r -file | % { $p = Resolve-Path -Relative $_.FullName; $map1[$p] = ($p,$_.Length) -join "," }; cd ..
 PS> $map2 = @{}; cd dir2; dir -r -file | % { $p = Resolve-Path -Relative $_.FullName; $map2[$p] = ($p,$_.Length) -join "," }; cd ..
 PS> $map1.Keys + $map2.Keys | ? { $map1[$_] -ne $map2[$_] } | `
        % { if (!$map1.containskey($_)) { "2 only: " + $_ } `
        elseif (!$map2.containskey($_)) { "1 only: " + $_ } else { "differ: " + $_ } } | sort | gu
 PS> $map1.Keys + $map2.Keys | ? { $map1[$_] -ne $map2[$_] }


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS