|
秀まるお2様
ありがとうございました。完全に行いたかった処理が実現しました。
後々、どなたかがこれと同じ処理をされたくなった時のために、フォルダ処理を含ん
だものも一体化したマクロファイルを貼り付けておきます。
$destdir = "f:\\temp";
loaddll "tkinfo.dll";
#n = dllfunc("SetJapaneseCodePageMode", 1);
#mailcount = dllfunc("MailCountAll");
if( #mailcount != dllfunc("MailCount") ) {
message "メール一覧の「範囲」を「全体」にしてからマクロ実行してくだ
さい。";
endmacro;
}
if( dllfunc("IsThreadView") != 0 ) {
#n = dllfunc("SetThreadView", 0);
}
#mailindex = 0;
while( #mailindex < #mailcount ) {
#n = dllfunc("SetMailIndex", #mailindex);
if( #n == 0 ) {
message "メールの選択に失敗 index=" + str(#mailindex);
endmacro;
}
#attachcount = dllfunc("CountCurrentHeader", "X-Attach:");
#attachindex = 0;
while( #attachindex < #attachcount ) {
$attach = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
+ "\\" + dllfuncstr("CurrentHeader2", "X-Attach:", #atta
chindex);
$attachbasename = midstr( $attach, strrstr( $attach, "\\" ) + 1 );
//フォルダの作成処理
$Subject = dllfuncstr("CurrentHeader", "Subject");
$Subject = dllfuncstr("ValidateForFileName", $Subject);
$Subject = leftstr( $Subject, 100 );
$folder = $destdir + "\\" + $Subject;
if( !existfile( $folder ) ) {
#n = dllfunc("Bypass_CreateDirectory", $folder);
if( #n == 0 ) {
#error = dllfunc("Bypass_GetLastError");
message "CreateDirectoryでエラー、エラーコード=" + s
tr(#error);
endmacro;
}
}
$zipext = dllfuncstr("ToLower", rightstr( $attach, 4 ));
//message $zipext;
if( $zipext == ".zip" ) {
//message "\"C:\\Tools\\7-Zip\\7z.exe\" e -y \"" + $attach;
runex "\"C:\\Tools\\7-Zip\\7z.exe\" e -y \"" + $attach + "\""
, 1
, 0, ""
, 0, ""
, 0, ""
, 2, $folder
, 0
, 0
, 0;
} else {
$destfile = $folder + "\\" + $attachbasename;
//message $destfile;
#n = dllfunc("Bypass_CopyFile", $attach, $destfile, 0);
}
#attachindex = #attachindex + 1;
}
#mailindex = #mailindex + 1;
}
|
|