Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Vytvoření duplicitních souborů podle určitého pravidla

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

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny