|
コメントが遅くなってすみません。(ちょっと見てなかった)
目的の動作は、ちょっと反則気味な以下のマクロで実現できます。一度使って
みて欲しいです。
秀丸マクロ・キーワードのbasenameでファイル名全体が返ってきてしまうのが
おかしいんですけど、それをちょっと悪用してまして…。
SAVEAS;
if( !result ) endmacro;
loaddll "tkinfo.dll";
$base = basename;
call GetBaseName $base;
$base = leftstr( $base, ##return );
#attachCount = dllfunc("CountCurrentHeader", "X-Attach");
if( #attachCount == 0 ) {
endmacro;
}
#i = 0;
while( #i < #attachCount ) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
$attach = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
+ "\\" + $attach;
call GetBaseName $attach;
$dest = $base + midstr( $attach, ##return, 256 );
#n = dllfunc("Bypass_CopyFile", $attach, $dest, 1);
if( #n == 0 ) {
message "ファイルのコピーに失敗しました。ファイル名 = "
+ $attach;
}
#i = #i + 1;
}
endmacro;
GetBaseName:
##x = -1;
##i = 0;
##len = strlen($$1);
while( ##i < ##len ) {
##code = ascii( midstr($$1, ##i, 256 ) );
if( ##code == '\\' ) {
##x = ##i;
}
if( ##code >= 0x100 ) {
##i = ##i + 2;
} else {
##i = ##i + 1;
}
}
return ##x + 1;
|
|