🙌

PowerShellでDIFFを取りたいときのコマンド

2023/03/15に公開

コマンドのサンプル

任意のファイルのDIFFを取りたいときのコマンドを2種類ご紹介します。

  1. Compare-Object

    サンプル
    Compare-Object -ReferenceObject (Get-Content "比較対象ファイル①") -DifferenceObject(Get-Content "比較対象ファイル②") | Out-File -FilePath '出力先ファイル' -Encoding utf8
    
  2. diff

    サンプル
    diff (cat "比較対象ファイル①") (cat "比較対象ファイル②") > 出力先ファイル
    

実際に比較してみる

たとえば、以下の2つのファイルを比較したい場合は、

Sample1.txt
Sample1
Sample2.txt
Sample2

以下のコマンドを実行することで、DIFFを取ることができます。(ファイルパスは任意でOKです。)

  1. Compare-Objectのパターン

    実行コマンド
    Compare-Object -ReferenceObject (Get-Content "C:\work\Sample1.txt") -DifferenceObject(Get-Content "C:\work\Sample2.txt") | Out-File -FilePath 'DIFF.txt' -Encoding utf8
    
  2. diffのパターン

    サンプル
    diff (cat "C:\work\Sample1.txt") (cat "C:\work\Sample2.txt") > DIFF.txt
    

どちらのパターンでも、実行結果は以下のようになります。
最初に指定したファイルにのみ存在する文字列は「<=」で表示され、後に指定したファイルにのみ存在する文字列は「=>」で表示されます。

DIFF.txt

InputObject SideIndicator
----------- -------------
Sample2     =>
Sample1     <=

Discussion