function OnInit(initData) { initData.name = 'SelectCommonPrefix'; initData.version = '2025-12-04'; initData.url = 'https://resource.dopus.com/t/select-based-on-version/57949/6'; initData.desc = 'SelectCommonPrefix'; initData.default_enable = true; initData.min_version = '12.0'; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = 'SelectCommonPrefix'; cmd.method = 'OnSelectCommonPrefix'; cmd.desc = 'SelectCommonPrefix'; cmd.label = 'SelectCommonPrefix'; cmd.template = ''; cmd.hide = false; cmd.icon = 'script'; } function OnSelectCommonPrefix(scriptCmdData) { var cmd = scriptCmdData.func.command; var tab = scriptCmdData.func.sourcetab; var ssi = DOpus.Create().StringSetI(); var map = DOpus.Create().Map(); cmd.deselect = false; var re = /^(.*)_v(.*)$/; for (var e = new Enumerator(tab.unsorted.files); !e.atEnd(); e.moveNext()) { var item = e.item(); ssi.insert(item.realpath); } for (var e = new Enumerator(ssi); !e.atEnd(); e.moveNext()) { var item = e.item(); var arr = item.match(re); if (!arr) continue; if (arr.length != 3) continue; var prefix = arr[1]; map.set(prefix, item); } if (map.empty) return; cmd.ClearFiles(); for (var e = new Enumerator(map); !e.atEnd(); e.moveNext()) { var item = map(e.item()); cmd.AddFile(item); } cmd.RunCommand('Select FROMSCRIPT DESELECTNOMATCH'); }