Как уже отмечали другие, вам не следует делать то, что вы пытаетесь сделать здесь, потому что это очень может создать больше проблем в будущем. Найдите причину проблемы и устраните ее, не пытаясь справиться с симптомами. Вы были предупреждены.
С учетом сказанного причина того, что содержимое всех входных файлов записывается в один и тот же выходной файл, заключается в том, что вы всегда указываете один и тот же выходной файл. Этот файл должен содержать только содержимое последнего входного файла, потому что вы открываете файл для записи (таким образом, стирая предыдущее содержимое), а не для добавления.
Заменить эти строки:
Set objFile = objFSO.OpenTextFile(objStartFolder & objFile.Name, 1)
Set outFile = objFSO.OpenTextFile(objStartFolder & "mod.xml", 2, True)
с этим:
Set inFile = objFile.OpenAsTextStream
outFilename = objFSO.BuildPath(objStartFolder, objFSO.GetBaseName(objFile) & "_mod.xml")
Set outFile = objFSO.OpenTextFile(outFilename, 2, True)
, а также замените другие вхождения objFile
после этого на inFile
( всегда избегайте изменения значения переменной цикла), и код должен делать то, что вы ожидаете. Но, опять же, имейте в виду, что вывод может быть недействительным XML.