//!*script
if(PPx.EntryFirstMark != 1){PPx.Echo('マークされたエントリがありません');PPx.Quit();}
var listFile = PPx.Extract('%a');
PPx.Execute('*edit \"' + listFile + '\"');
var fso = new ActiveXObject('Scripting.FileSystemObject');
var newFileNames = [];
if(fso.FileExists(listFile)){
  var f = fso.OpenTextFile(listFile, 1);
  while(! f.AtEndOfStream) newFileNames.push(f.ReadLine());
  f.close();
}else{PPx.Echo('リネームデータを取得できませんでした');PPx.Quit();}
var dir = PPx.Extract('%1');
for(var i = 0; true; i++){
  var oldName = dir + '\\' + PPx.EntryName;
  var newName = dir + '\\' + newFileNames[i];
  if (newName && newName != '' && newName != oldName
    && fso.FileExists(oldName) && (! fso.FileExists(newName))
  ){
    fso.GetFile(oldName).Move(newName);
  }else{
    PPx.Echo(PPx.EntryName + ' のリネームに失敗しました。\n名前の重複などを確認してください');
  }
  if(PPx.EntryNextMark == 0) break;
}