LoginSignup
1
1

More than 3 years have passed since last update.

コマンドプロンプトからWinMergeを操作する

Last updated at Posted at 2020-02-04

はじめに

「WinMerge」はスクリプトや設定ファイルの差分を比較する際に重宝していますが、調べ物をしている最中にWinMergeをコマンドラインから操作する方法があることを知りました。

以下のようにコマンドラインでWinMergeを定期的に実行すれば、例えば「たまに更新されるファイルを比較して、更新を検知する」ということが可能になるかもしれません。

方法

  • 以下のコマンドで2ファイルを比較して、その結果をファイルに出力することができます。
  • 「1ファイルずつの比較結果」と「フォルダ単位での比較結果」で、得られる結果ファイルのフォーマットが異なる点に注意してください。
    • 1ファイルずつの場合:HTMLファイル。WinMergeの画面とよく似たフォーマットになっています。
    • フォルダ単位での比較結果
> start WinMergeU {左パネルに表示するファイル/フォルダ} {右パネルに表示するファイル/フォルダ} /or {比較結果の出力先ファイル}

1ファイルずつの比較結果の例

  • 1ファイルずつの比較結果の場合、以下の図のようにGUIで見やすい結果が得られます。
    • 逆に、この結果ファイルをプログラムで解析するのは少々面倒だと思います...

image.png

フォルダ単位での比較結果の例

  • フォルダ単位での比較結果の場合、以下のように単なるテキストとして結果が出力されます。
    • HTMLで出力されたものよりは、プログラムで解析しやすいと思います。
result.txt
C:\Users\NKOJIMA\Desktop\a と C:\Users\NKOJIMA\Desktop\b の比較
2020/02/02 18:17:14
ファイル名,フォルダ,比較結果,左日付,右日付,拡張子
..,,,,,
a.txt,,テキストファイルは同一です,  2020/02/02 18:11:37,  2020/02/02 18:11:37,txt
b.txt,,テキストファイルは同一です,  2020/02/02 18:11:44,  2020/02/02 18:11:44,txt
c.txt,,右側のみ: C:\Users\NKOJIMA\Desktop\b,  ,* 2020/02/02 18:16:03,txt

その他

上記のコマンドを実行するとWinMergeが起動したままになってしまうので、処理が完了したら次のコマンドでWinMergeを終了させると良さそうです。

> taskkill /IM "WinMergeU.exe"
成功: プロセス "WinMergeU.exe" (PID 2600) に強制終了のシグナルを送信しました。

参考URL

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1