for ... in でコレクションからひとつひとつファイルを取り出しつつリネームしていく、 といったオンザフライな処理では恐らく望んだ結果は得られない。 リネームすることで大元のコレクションの内容がリアルタイムで変わっちゃう感じ。
泥臭いけど俺はいつもこうしてる。
var f1 = objFSO.GetFolder(folderspec); var f2 = new Enumerator(f1.Files); var arr = new Array(); for (; !f2.atEnd(); f2.moveNext()) arr.push(f2.item().Name); var f, i; for (i = 0; i < arr.length; i++) { f = objFSO.GetFile(objFSO.BuildPath(folderspec, arr[i])); f.Name = "new" + f.Name; }