0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WinMergeと かぞえチャオ!にドラック&ドロップをやりたくなかった

Last updated at Posted at 2018-11-17

作業内容

  • 変更前フォルダと変更後フォルダ内のステップ数をかぞえチャオ!で比較
  • 変更前フォルダと変更後フォルダ内の変更内容のDiffをとること

なくしたい作業

2018-11-17.png

↑ドラック&ドロップ(以降D&D)

Winmergeも同じ作業があります。

なぜなくしたいのか

  • まず自分で作業したら、かぞえチャオ!とWinMergeで差分(以降Diff)をとります。
  • 次に、リーダーに見てもらい修正をして、Diffをとります(訂正箇所があれば再度Diffをとる[を繰り返す])
  • 次に、主任?的な人に見てもらい修正をして、Diffをとります(訂正箇所があれば再度Diffをと、、、

という感じで、Diffをとる回数が多く、そのたびにD&Dをくりかえします。
gitが

調べた結果

かぞえチャオ!には自動実行オプションというものがある

1 拡張子 cas ファイルに情報を書き込む。
2 かぞえチャオ!起動
(設定済みのディレクトリのパスをみて比較してくれる)

D&Dしなくてよい‼

WinMeregeにはプロジェクトを保存という機能がある

1 プロジェクトを保存ボタンを押す
2 比較対象にしたディレクトリのパスを .WinMerge 拡張子のファイルに書き出し。
3 .WinMergeファイルを起動することで、ディレクトリのパスをファイルから読み込む。

D&Dしなくてよい‼

結果

以上、WinMergeの場合は、初回のみD&Dが必要だが、設定を保存するために、.cas .WinMerge ファイルを作成することによって、D&D作業がなくなり、次回からのDiffをとる作業が楽になる。
めでたしめでたし

ということで、バッチファイルをつくります。

なぜやるのか

D&Dしたくない

やったこと

.WinMerge .cas 拡張子ファイルの調査

.WinMergeファイルの中身

<?xml version="1.0" encoding="UTF-8"?>
<project>
	<paths>
		<left>C:\Users\hp\Downloads\kazoeciao\変更前</left>
		<right>C:\Users\hp\Downloads\kazoeciao\変更後</right>
		<filter>*.*</filter>
		<subfolders>1</subfolders>
		<left-readonly>0</left-readonly>
		<right-readonly>0</right-readonly>
	</paths>
</project>

.casファイルの中身

[AFTPATH]
C:\Users\hp\Downloads\kazoeciao\変更後
[BFRPATH]
C:\Users\hp\Downloads\kazoeciao\変更前
[EXEMODE]
1

調査結果

  • .WunMergeファイルも、.casファイルも、パスを書き換えることで、設定を変更できそうだ

バッチファイル作成

初めてのバッチファイル作成だったので、とりあえず簡単そうな
メモ帳の起動をしてみる。

バッチファイルに

a.bat
notepad

と書き込み、バッチファイルを起動。見事、メモ帳が起動しました。

試しに、

b.bat
WinMerge
c.bat
WinMerge.exe

を作成してみましたが、起動できず。今回やりたいのはこれじゃないのでスルー。

テキストファイルの出力

a.bat
echo aaaaaa>> a.txt

以上のように、echo と >> を使うことによって、aaaaaa が記述された、a.txtファイルを出力します。

変数の使用

a.bat
set strBefore=変更前
echo %strBefore%>> a.txt

set を使うことによって、変数を使用できます。右辺を左辺に代入します。
また、%で囲むことによって、変数を使用できます。

.casファイルの確認

[AFTPATH]
C:\Users\hp\Downloads\kazoeciao\変更後
[BFRPATH]
C:\Users\hp\Downloads\kazoeciao\変更前
[EXEMODE]
1

以上の内容をバッチファイルで出力します。

a.bat

@echo off

chcp 932
set /P str="変更前、変更後フォルダのあるディレクトリをフルパスで入力(最後の\はいらない)"
set strBefore=%str%\変更前
set strAfter=%str%\変更後
echo [AFTPATH]>> sample2.cas
echo %strAfter%>> sample2.cas
echo [BFRPATH]>> sample2.cas
echo %strBefore%>> sample2.cas
echo [EXEMODE]>> sample2.cas
echo ^1>> sample2.cas

pause

/Pとかchcp 932とかでてきます。

/P

入力を受け付けます。
上記例では、
1 コマンドプロンプトに文字列を表示
変更前、変更後フォルダのあるディレクトリをフルパスで入力(最後の\はいらない)
2 エンターを押す前に入力された文字列をstr変数に代入

chcp 932

文字コードを変更してくれるそうです

SJISとかUTF-8とかです。

^

エスケープしてくれます
上記例では、^1とありますが、ただ1にしたら、[ON]だったかな?がテキストファイルに出力されたので、エスケープしました。
ほかにも、<とか>は特殊な文字のようで出力したければ、手前に、^が必要です。

@echo off
とか
pause
はよくわかっていませんが、みんながつけてたのできっと必要です。
pauseをとると、最後にエンターを押さなくても終了してくれるのでいらない気がしています。

batファイル実行

以上のファイルをbatファイルにして実行
フォルダのパスを入力しエンターで
.casファイルを出力してくれます。

改造

.Winmergeと.casをひとつのバッチファイルで出力します。

二つのバッチファイルを作ってもよかったのです。
しかし、自分の場合は、同じディレクトリを対象に、Diffをとるのです。
なので、.cas .WinMerge を同じバッチファイルから出力します。

バッチファイル完成

a.bat
@echo off

chcp 932
set /P str="変更前、変更後フォルダのあるディレクトリをフルパスで入力(最後の\はいらない)"
set strBefore=%str%\変更前
set strAfter=%str%\変更後
echo [AFTPATH]>> sample2.cas
echo %strAfter%>> sample2.cas
echo [BFRPATH]>> sample2.cas
echo %strBefore%>> sample2.cas
echo [EXEMODE]>> sample2.cas
echo ^1>> sample2.cas

chcp 65001

echo ^<?xml version="1.0" encoding="UTF-8"?^>>> sample2.WinMerge
echo ^<project^>>> sample2.WinMerge
echo 	^<paths^>>> sample2.WinMerge
echo 		^<left^>%strBefore%^</left^>>> sample2.WinMerge
echo 		^<right^>%strAfter%^</right^>>> sample2.WinMerge
echo 		^<filter^>*.*^</filter^>>> sample2.WinMerge
echo 		^<subfolders^>1^</subfolders^>>> sample2.WinMerge
echo 		^<left-readonly^>0^</left-readonly^>>> sample2.WinMerge
echo 		^<right-readonly^>0^</right-readonly^>>> sample2.WinMerge
echo 	^</paths^>>> sample2.WinMerge
echo ^</project^>>> sample2.WinMerge

上記が完成したバッチファイルです。

sample2.cas
sample2.WinMerge

ファイルを出力してくれます。

大変だったこと

chcpを切り替えるタイミング

chcpですが最初は、つかっていませんでした。
.casファイルは正常に起動したのですが、.WinMergeはどうやらUTF-8形式らしく、chcpをつかいました。
また、最初は、

変数にフォルダパスのみを代入して、あとから変更前、変更後という文字列を追加していたのですが、
chcp 65001 をした後に、日本語を使用すると、文字化けするようで、そこの改良にすごく悩みました。
最終的には、最初に変数にすべて入力済みにして、そのあとに
chcpを使うことによって、問題が解決しました。

おもったこと

かぞえチャオ!を複数用意する

たくさんのかぞえチャオ!を用意しておき、ショートカットをスタートに置けば、楽にDiffが取れる。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?