Tak tady to je:
Dim fso, f, sf, sfl, folder, file, filelist, counter, warning, stary, novy
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
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
novy = folder & "\" & folder.Name & Right("0000" & CStr(counter),4) & "." & Right(stary,3)
fso.MoveFile stary, novy
wscript.echo counter & " - " & stary & " - " & novy
counter = counter + 1
next
next
Wscript.echo "Akce provedena!"
Else
Wscript.echo "Akce byla zrušena!"
end if
ulož si to jako "něco.vbs" a doporučuju spouštět pomocí příkazu cscript něco.vbs v konzoli CMD.
Chyby které jsem neodladil: Čas od času se mi stane, že první přejmenování (pro mě nepochopitelně) vezme při volání metody sfl.Files (tj. při načítání jmen souborů) i sobory, které "teprve budou"



Možné úpravy: Pokud se z obou cyklů vyhážou všechny Wscript.echo výpisy do konzoly, je možné pohodlně spouštět skript pomocí wscript (tj. poklikáním na ikonku), ale pak není žádný záznam o činnosti skriptu. Dále je možno změnit počet nul v číslování - postačí změnit poslední číslovku ve funci Right("0000" & CStr(counter),4) na požadovanou hodnotu (nyní jsou 4)