Windowsでdiffコマンドを使いたいんだけど-標準Dosコマンドで可能

DOSコマンド

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

ファイル比較

プログラム開発、コンフィグを書きたいなど、2つのファイルでどこに差があるかを確認する時にLinuxだったら、diffを使って調べますが、Windowsにはdiffコマンドはないと思っていました。

ところが便利なツールありました。

fc

filecompare コマンドですね。

C:\Users>fc /?
2 つのファイルまたはファイル セットを比較し、相違点を表示します。


FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
   [ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2
FC /B [ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2

  /A         相違する各部分の 1 行目と最後の行だけを表示します。
  /B         バイナリの比較を実行します。
  /C         英字の大文字と小文字を区別しません。
  /L         ファイルを ASCII テキストとして比較します。
  /LBn       連続する最大不一致行を指定行数に設定します。
  /N         ASCII の比較で行番号を表示します。
  /OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
  /T         タブをスペースに変換しません。
  /U         Unicode テキスト ファイルとしてファイルを比較します。
  /W         連続した空白 (タブとスペース) を 1 つのスペースに圧縮して比較
             します。
  /nnnn      不一致発見後に確認する、一致すべき連続行数を指定します。

  [ドライブ1:][パス1]ファイル名1
             比較する最初のファイルまたはファイル セットを指定します。
  [ドライブ2:][パス2]ファイル名2
             比較する 2 番目のファイルまたはファイル セットを指定します。

比較結果はこんな感じです

古いルータコンフィグをそのまま、新しいルータに移植して、反映されていないコンフィグがあるかを確認するための比較をしました。

RTX1200と、RTX1220です。

/n は行番号を出力します。

>fc /n "\デスクトップ\RTX1200teraterm.txt" "\デスクトップ\RTX1220teraterm.log"
ファイル C:\USERS\HANAKO\ONEDRIVE - \デスクトップ\RTX1200teraterm.txt と C:\USERS\HANAKO\ONEDRIVE - \デスクトップ\RTX1220TERATERM.LOG を比較しています
***** \デスクトップ\RTX1200teraterm.txt
   20:   pp auth accept pap chap
   21:   pp auth myname zb3128324@rb.il24.net Lacg3sgaa
   22:   ppp lcp mru on 1454
***** \デスクトップ\RTX1220TERATERM.LOG
   20:   pp auth accept pap chap
   21:   pp auth myname zb3128324@rb.il24.net *
   22:   ppp lcp mru on 1454
*****

***** \デスクトップ\RTX1200teraterm.txt
   96:  sntpd host lan
   97:  #
***** \デスクトップ\RTX1220TERATERM.LOG
   96:  sntpd host lan
   97:  #
*****

まとめ

Windowsでdiff したかったら、何かdiffツールを探して実行しないと無理かとおもっていたのですが、標準コマンド fc でできたのでビックリです。余計なツールをインストール(もしくは探さなくて)しなくて済んで良かった。

タイトルとURLをコピーしました