※ 使用するには、ツール>オプション設定>スクリプト>新規作成 のスクリプト作成ウィザードで適当に
OnListMenuClick 用
// 2006.06.19 dokas_mg function OnListMenuClick(irvine, action) { var item = new IrvineItem; var maxfig = 0; for (var i = irvine.ItemCount - 1; i >= 0; --i) { var fname, fig; if (irvine.GetItemSelected(i)) { item.data = irvine.GetItemData(i); if (item.filename == '') fname = item.url.slice(item.url.lastIndexOf('/') + 1, item.url.length); else fname = item.filename; fig = LastFiguresCount(fname.substring(0, fname.lastIndexOf('.'))); if (maxfig < fig) maxfig = fig; } } if ((maxfig < 1) || (maxfig > 8)) { alert('最大桁数が 1 から 8 の場合以外は非対応です'); return; } if (!confirm('最大桁数の ' + maxfig.toString() + ' にあわせます')) return; irvine.BeginProgressBar(irvine.SelectedItemCount); try { var zero = '00000000'; for (var i = irvine.ItemCount - 1; i >= 0; --i) { if (irvine.GetItemSelected(i)) { var fname; item.data = irvine.GetItemData(i); if (item.filename == '') fname = item.url.slice(item.url.lastIndexOf('/') + 1, item.url.length); else fname = item.filename; var idx = fname.lastIndexOf('.'); var noext = fname.substring(0, idx); var ext = fname.substring(idx, fname.length); var fig = LastFiguresCount(noext); if (fig > 0) { var figdiff = maxfig - fig; if (figdiff > 0) { var figidx = noext.length - fig; item.filename = noext.substring(0, figidx) + zero.substring(0, figdiff) + noext.substring(figidx, noext.length) + ext; irvine.SetItemData(i, item.data); } } irvine.ProgressBarStepBy(1); } } } finally { irvine.EndProgressBar(); irvine.Invalidate(); } } function OnMenuUpdate(irvine, action) { action.enabled = (irvine.SelectedItemCount > 0); } function LastFiguresCount(str) { var fig = 0; if (str != null) { var digits = '0123456789'; for (var i = str.length - 1; i >= 0; --i) { if (digits.indexOf(str.substr(i, 1)) < 0) break; fig++; } } return fig; }
OnListMenuClick 用
// 2006.07.13 dokas_mg function OnListMenuClick(irvine, action) { var item = new IrvineItem; irvine.BeginProgressBar(irvine.SelectedItemCount); try { for (var i = irvine.ItemCount - 1; i >= 0; --i) { if (irvine.GetItemSelected(i)){ item.data = irvine.GetItemData(i); var fname; if (item.filename == '') { var u = item.url; fname = u.slice(u.lastIndexOf('/') + 1, u.length); } else fname = item.filename; var idx = fname.lastIndexOf('.'); if (idx > -1) { var newfname = fname.substring(0, idx) + fname.substring(idx, fname.length).toLowerCase(); if (newfname != fname) { item.filename = newfname; irvine.SetItemData(i, item.data); } } irvine.ProgressBarStepBy(1); } } } finally { irvine.EndProgressBar(); irvine.Invalidate(); } } function OnMenuUpdate(irvine, action) { action.enabled = (irvine.SelectedItemCount > 0); }