tady máš 80% řešení:
http://pc.poradna.net/q/view/43896-soft-na-hromadn e-prejmenovani-souboru-v-adresari-podle-nazvu-adre sare?page=r44208#r44208
- místo přejmenování si v cyklu iterovaném přes pole jazykových verzí projedeš rozkopírování souboru. (pole = array ("_en", "_de", ...) a pak for each lang in pole a fso.CopyFile stary, novy)
- jen mírně upravíš výsledný název souboru
tj. něco jako novy = folder.path & "\" & koncovka(0)& lang & "." & koncovka(UBound(koncovka))
podotýkám, že takto napsaný kód nezohlední soubory s více tečkami v názvu (vezme jen část názvu souboru po první tečku)
P.S.: nezkoušel jsem, píšu to z hlavy, takže tam mohou být chyby (nezkoušej na datech od kterých nemáš zálohu)!
Dim fso, f, sf, sfl, folder, file, filelist, counter, warning, stary, novy, koncovka
path = InputBox("Zadejte cestu k nadřazenému adresáři ve kterém se nachází adresáře s obrázky")
warning = MsgBox("Budou přejmenovány soubory v podadresářích tohoto adresáře: " & path & ". Je to správně?", 276, "Poslední záchrana")
if warning = 6 then
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(path)
Set sf = f.SubFolders
pole = array ("_en", "_de", "_es")
For Each folder in sf
counter = 1
Set sfl = fso.GetFolder(folder)
set filelist = sfl.Files
Wscript.echo " "
Wscript.echo "Adresář " & folder
Wscript.echo "číslo - starý název - nový název"
Wscript.echo "==============================================================================="
For Each file in filelist
stary = file
koncovka = Split(file.name, ".", -1, 1)
for each lang in polelang
novy = folder.path & "\" & koncovka(0)& lang & "." & koncovka(UBound(koncovka))
fso.CopyFile stary, novy
next
wscript.echo counter & " - " & stary & " - " & novy
counter = counter + 1
next
next
Wscript.echo "Akce provedena!"
Else
Wscript.echo "Akce byla zrušena!"
end if