Posted at

抜き出した2つのコードが同一かwinmergeにかけて調べたい時のためのツール


概要

 コード修正などを行っていて「これさっき同じの見た」と既視感を覚えた時に、どこまで同じなのかを調べるために私がよくやるのが、「a.txt」と「b.txt」にそれぞれ抜き出したコードを張り付けてWinMergeで差分チェックを行うことです。

 頻度はそこまで高くはないのですが、「a.txt」、「b.txt」を開くのとWinMerge起動するのが面倒だったのでバッチにしました。

以下に上げました。ご自由のご使用ください。

WinMergeでファイル比較起動バッチ

基本的に自分用ですので、勝手に改変することがあります。


内容

バッチの内容は以下です。(記事執筆時点)


diff.bat


:winmerge path
set WINMERGE="C:\Program Files\WinMerge\WinMergeU.exe"

: Working dirctory
set WORKDIR=diff
: filename
set FILE_A=%WORKDIR%\a.txt
set FILE_B=%WORKDIR%\%b.txt

: Genereting file name (if you wanto to generate anathor file each time you start this.)
:set NOW_DATE=%date:~0,4%%date:~5,2%%date:~8,2%
:set NOW_TIME=%time:~0,2%%time:~3,2%%time:~6,2%
:set FILE_A=%WORKDIR%\%NOW_DATE%_%NOW_TIME%_a.txt
:set FILE_B=%WORKDIR%\%NOW_DATE%_%NOW_TIME%_b.txt
:type nul > %FILE_A%
:type nul > %FILE_B%

echo %FILE_A%
echo %FILE_B%

: Make working directory
mkdir %WORKDIR%

: Open text files with the default app
start %FILE_A%
start %FILE_B%

start "" %WINMERGE% %FILE_A% %FILE_B%


コメントが英語なのはキーボードの日本語変換が面倒だっただけです。

変数WORKDIRのフォルダに比較するための2ファイルを格納します。

変数FILE_Aと変数FILE_Bがその比較対象のファイルで、それらをWinMergeで比較します。

start %FILE_A%start %FILE_B%はテキストファイルを起動しています。

拡張子「.txt」に設定しているテキストエディタによってファイルが開かれます。

start "" %WINMERGE% %FILE_A% %FILE_B%でWinMergeを起動して2つのファイルの比較をします。

ちなみに、start """"は新しく起動するプロンプトのタイトル名です。これを付けないと%WINMERGE%を誤ってタイトルとして受け取ってしまいWinMergeが起動しません。

実行すると、変数FILE_Aと変数FILE_Bの2ファイルがテキストエディタで起動し、同時にWinMergeでの比較も起動します。

後は、テキストファイルにコードを張り付ければOKです。WinMerge上で直接貼り付けても良いです。


ご使用になるにあたって

変数WINMERGEはWinMergeインストールパスに合わせて適宜変更してください。

テキストファイルの起動が不要でしたら

start %FILE_A%start %FILE_B%の前に:を付けてコメントアウトしてください。

:set NOW_DATE=%date:~0,4%%date:~5,2%%date:~8,2%

・・・

:type nul > %FILE_B%

までのコメントアウトを外せば、毎度別のファイルを生成します。