|
MTさん,
とりあえず次のようなマクロではどうでしょう。
グループ名やフォルダは適宜書き換えてください。
//--------- FoderGroupGrep.mac ---------------------------------------//
//// フォルダグループの設定 //////////////////////
// グループ数,グループに含まれるフォルダ数にとくに制限はありません。
// フォルダ名は「;」で区切ります。
#groupnum = 3; // フォルダグループの数
//グループ名
$GropuName[1] = "AAA";
$GropuName[2] = "BBB";
$GropuName[3] = "CCC";
//グループに含まれるフォルダ
$FolderGroup[1] = "C:\\AAA\\abc;C:AAA\\acd1;C:\\ABC\\abcd";
$FolderGroup[2] = "D:\\BBB\\bcd;C:\\BBB\\cde2;C:CDE\\dfr4";
$FolderGroup[3] = "E:\\CCC\\rfg;D:\\CCC\\wert4;C:\\tyuf56o\\tghjk";
//////////////////////////////////////////////////
$GropuName[0] = "グループの選択";
menuarray $GropuName, #groupnum + 1;
#r = result - 1;
if( #r < 1 ) endmacro;
call Divide $FolderGroup[#r];
#num = ##return;
grepdialog2 "", grepfilebuffer, $folder[1], searchoption | 0x400;
if( result < 0 ) endmacro;
#grepmain = hidemaruhandle(0);
$word = searchbuffer;
#searchoption = searchoption | 0x400;
$searchfile = grepfilebuffer;
#num = 3;
#i = 2;
while( #i <= #num ) {
grep $word, $searchfile, $folder[#i], #searchoption;
#greptemp = hidemaruhandle(0);
disableinvert;
selectall;
copy;
setactivehidemaru #grepmain;
gofileend;
paste;
closehidemaru #greptemp;
#i = #i + 1;
}
clearupdated;
endmacro;
Divide: //区切られた文字列を分解する
$$s = $$1;
##i = 1;
while( 1 ) {
##m = strstr( $$s, ";" );
$$a = leftstr( $$s, ##m );
if( ##m < 0 ) $$a = $$s;
$folder[##i] = $$a;
if( ##m < 0 ) break;
$$s = midstr( $$s, ##m + 1 );
##i = ##i + 1;
}
return ##i;
//-----------------------------
山紫水明
SANSHISUIMEI
|
|