2015年9月30日水曜日

複数マーク時は動作を分岐

さっきの記事を書いた後、「そういやWinMergeも複数のファイルを引数に取るよな」「複数マーク時とそうで無い時とで分岐できれば便利かもしれぬ」「拡張子判別、パス判別に続いてマーク数判別とか新しそう」「PDF結合かWinMergeかには拡張子判別を使おう」などと昼飯を食べながらつらつらと考えていた。というわけで今日二回目の記事。

2つ以上マークがある時と、それ以外の時とで、Shift+Enterの動作を分岐させてみる。

以下をScriptフォルダに保存。

EntryMarkCount.js
//!*script

PPx.Result = PPx.EntryMarkCount; 

これは、マークエントリ数を返すだけのスクリプト。
次いで、以下を編集して取込。
A_exec    = {    ; エイリアス
pdftk    = "C:\Program Files (x86)\PDFtk\bin\pdftk.exe"
winmerge    = D:\bin\WinMerge\WinMergeU.exe
}
KC_main = {
\ENTER,*ifmatch 0;1,%*script(%0\Script\EntryMarkCount.js) %: %ME_scr %: *stop
  %ME_mark
}
E_mark    = {    ; \[Enter]用判別(複数マーク時)
CFG    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
TXT    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
INI    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
JS    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
PDF    ,%Q"PDFを連結しますか?" %: %Ob %'pdftk' %#C cat output %"結合時のファイル名を入力して下さい"%{%|output%|.pdf%} %: %K"@F5"
}

Shift+Enterを押した時、マークエントリ数が0あるいは1の時は、通常の判別E_scrを。2つ以上の時はE_markを実行するようにする。
E_markだが、拡張子がPDFの時には、PDFtkを使ってマークしたPDFファイル同士を結合。拡張子がCFG、TXT、INI、JSの時には、マークしたファイルの内容をWinMergeで比較する。


0 件のコメント:

コメントを投稿