PowerShell でファイル比較 (解説・前半)

前回ご紹介したスクリプトは前半の「総行数比較」と後半の「各行比較」に分かれており、今回は前半を解説します。

 

 

まず、「$NoK」と「$NoH」という二つの変数を定義しています。

これらが各テキストファイルの行数を表すのですが、そのためにコマンドレットを二つ使っています。

Get-Content コマンドレットでテキストファイルの全文を読み込み、それをパイプで  Mesure-Object コマンドレットに渡す仕組みです。

Mesure-Object というのは統計情報を算出してくれるコマンドレットで、実行結果の「Count」というプロパティにはテキストの行数が出ます。

(その他、得点表のような CSV ファイルを読み込ませて、平均値を出すことなどが可能です。)

 

 

Get-Content から始まるコマンドレットの全体を「 ( ) 」で括り、最後に 「.Count」 を付ける事により、実行結果から「Count」というプロパティだけを得ることが出来ます。

その結果として、「$NoK」には「5」、「$NoH」には「4」という値が格納されます。

 

 

この二つの変数が一致するか否かを、比較演算子「-eq」により判定します。

今回のケースでは一致しないので実行結果は「False」となりますが、一致すれば「True」となります。

 

 

最後に各テキストファイルの行数を出力するのですが、値だけが出力されても分かりにくいので、「基準」「比較対象」といったタイトルと、「行」という単位を付加します。

文字列を連結する場合は、「 ” “ 」で括って「 + 」で繋げます。

なお、文字列と数値を連結する場合、数値の方は「 ” “ 」で括らなくてもいいようです。

(ただし、数値と数値を「 + 」で繋げた場合は、足し算が行われるので注意が必要です。)

 

 

後半へ続く。