Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Script na hromadný přesun souborů a přejmenování

Mám neskutečné množství souborů a potřebuji je nějak automatizovaně přesunout a přejmenovat.
Tady je popis mého problému:

Mám 37 složek s názvy 1 až 37

V každé této složce je 513 souborů... mapa_run_1.png
mapa_run_1_2.png
...
...
mapa_run_1_513.png

a dále je zde 57 adresářů s názvem 1-1
1-2
...
...
1-57

Z toho první číslo v názvu je vždy stejné jako název složky ve které je adresář uložen tzn. že např. ve složce 7 budou adresáře 7-1 7-2 7-3 až 7-57

Potřebuji přesunout do každého adresáře vždy 9 souborů *.png a to podle tohoto příkladu:

Do adresáře 1-1 přesunout soubory: mapa_run_1.png až mapa_run_1_9.png
Do adresáře 1-2 přesunout soubory: mapa_run_1_10.png až mapa_run_1_18.png
...
...
Do adresáře 1-57 přesunout soubory: mapa_run_1_505.png až mapa_run_1_513.png

A nakonec potřebuji vždy těch 9 souborů *.png v adresářích přejmenovat podle tohoto příkladu:

mapa_run_1.png............13.png
mapa_run_1_2.png..........12.png
mapa_run_1_3.png..........11.png
mapa_run_1_4.png..........23.png
mapa_run_1_5.png..........22.png
mapa_run_1_6.png..........21.png
mapa_run_1_7.png..........33.png
mapa_run_1_8.png..........32.png
mapa_run_1_9.png..........31.png

A to samé třeba pro:
mapa_run_1_505.png..........13.png
mapa_run_1_506.png..........12.png
mapa_run_1_507.png..........11.png
mapa_run_1_508.png..........23.png
mapa_run_1_509.png..........22.png
mapa_run_1_510.png..........21.png
mapa_run_1_511.png..........33.png
mapa_run_1_512.png..........32.png
mapa_run_1_513.png..........31.png

Našel by se někdo,kdo mi poradí nějaký program nebo script který by to uměl ?

Předmět Autor Datum
návod jak na to (a částečné řešení, stačí si jen upravit k obrazu svému) je zde: http://pc.poradna.…
touchwood 09.11.2006 08:47
touchwood
anebo použij TotalCommander a jeho nástroj hromadného přejmenování, pokud je to jednorázová akce.
touchwood 09.11.2006 08:49
touchwood
To se týká přejmenování,ale co s přesunem těch souborů ?
Jirka74 09.11.2006 09:05
Jirka74
přesun je už ruční záoležitost. ;-)
touchwood 09.11.2006 10:23
touchwood
Ruční záležitost :-D , nesmysl... Kdybych to měl dělat ručně tak se z toho osypu a nemusel bych sem…
Jirka74 09.11.2006 10:54
Jirka74
no tak to budeš muset počkat do víkendu :-), anebo si to upravit sám.
touchwood 09.11.2006 14:04
touchwood
Kdyby jsi byl od té dobroty a něco vykoumal tak ti budu nesmírně zauzlen. Rád počkám,zatím dík.
Jirka74 09.11.2006 14:53
Jirka74
Jen se připomínám,aby jsi na mě nezapoměl ;-)
Jirka74 12.11.2006 09:29
Jirka74
snad dneska odpoledne, když se mi podaří zaúčtovat tu kopu faktur :-)
touchwood 12.11.2006 10:10
touchwood
docela jsem to testoval, ale jistota je jistota, doporučuji před akcí mít zálohu ;-) Dim fso, f, f…
touchwood 12.11.2006 14:44
touchwood
Díky moc,vyzkouším a dám vědět jak to valí. Nemohl jsem to otestovat hned protože mám momentálně cel…
Jirka74 13.11.2006 12:52
Jirka74
Omlouvám se, ale teprve dnes jsem se dostal na otestování tvého scriptu,narodil se mi totiž syn a ta…
Jirka74 17.12.2006 20:14
Jirka74
narodil se mi totiž syn Blahopřejeme! Pavel
Pavel 17.12.2006 20:48
Pavel
narodil se mi totiž syn hmmm... tak to teda musela být teda šňůra, žes vystřízlivěl až včilkaj :-D
touchwood 17.12.2006 21:33
touchwood
jestli tam máš "soubor nenalezen", tak jsi špatně definoval zadání. ;-) Pořadí musí být správně, pr…
touchwood 17.12.2006 21:35
touchwood
Zkoušel jsem to znova a jak jsem psal,změny se provedou pouze v podadresáři 1 Vypadá to že script n…
Jirka74 18.12.2006 11:29
Jirka74
Na hromadné přejmenování je dobrý program NameIt, starší verze je zde : nameit.zip
Fuente 18.12.2006 12:23
Fuente
Nejlepší by bylo,kdybych ti mohl poslat simulaci složek a souborů a ty by jsi to mohl rovnou vyzkouš…
Jirka74 18.12.2006 19:39
Jirka74
Nezapoměl jsi na mě :?:
Jirka74 21.12.2006 22:36
Jirka74
nezapomněl, ale tys mi neodpověděl na mail :-) edit: aha. odpověděl: WARNING: possible mail bomb,…
touchwood 21.12.2006 23:37
touchwood
zítra na to kouknu.
touchwood 21.12.2006 23:38
touchwood
No to víš já jsem známej spamer :-D Dík
Jirka74 22.12.2006 10:53
Jirka74
Z toho první číslo v názvu je vždy stejné jako název složky ve které je adresář uložen tzn. že např.…
touchwood 23.12.2006 11:15
touchwood
To je jen výsek z mého zadání,když to přečteš celé a zároveň si kreslíš zadání tak je to přesně tak…
Jirka74 23.12.2006 12:15
Jirka74
poslední verze, podle upraveného zadání :-p: Dim fso, f, sf, sfl, folder, file, filelist, counter,…
touchwood 23.12.2006 11:22
touchwood
Script pracuje opravdu skvělě,máš můj obdiv :!: poslední
Jirka74 23.12.2006 12:15
Jirka74

docela jsem to testoval, ale jistota je jistota, doporučuji před akcí mít zálohu ;-)

 Dim fso, f, file, path, warning, stary, novy, a, b, i, j
  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 a přesunuty 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")
  	For i = 1 to 37
		Set f = fso.GetFolder(path & "\" & i)
		fso.MoveFile f.path & "\mapa_run_" & i & ".png", f.path & "\mapa_run_" & i & "_1" & ".png"
		a = 1
		b = 3
		For j = 1 to 513
			stary = f.path & "\mapa_run_" & i & "_" & j & ".png"
			novy = f.path & "\" & i & "-" & ((j+8)\9) & "\" & a & b & ".png"
			fso.MoveFile  stary, novy
			b = b - 1
			
			if b = 0 then
				b = 3
				a = a + 1
				if a = 4 then
					a = 1
				end if
			end if
		next	
	next
end if

Podotýkám, že to je docela humpolácké, nechtělo se mi vymýšlet algoritmus na výpočet nového jména z pořadí (myslím, že by to šlo, jednu polovinu (pravou část bych věděl snad z fleku, ale nad zbytkem se mi nechtělo přemýšlet :-))

Omlouvám se, ale teprve dnes jsem se dostal na otestování tvého scriptu,narodil se mi totiž syn a tak jsem měl na krku zcela jiné záležitosti :-)
Spustil jsem script,ale přejmenování a přesun proběhl pouze ve složce 1 a potom script vypsal chybu Řádek:8 Znak:3 soubor nenalezen Kód: 800A0035
Dále je pro mě důležité přejmenovat soubory podle pořadí.
Tak prosím kdyby jsi opět našel chvilku času....

Zkoušel jsem to znova a jak jsem psal,změny se provedou pouze v podadresáři 1

Vypadá to že script nenajde cestu k dalším podadresářům 2 až 37,protože vše perfektně proběhne pouze v podadresáři 1 a pak to vyhodí tu hlášku s chybou...

To je jen výsek z mého zadání,když to přečteš celé a zároveň si kreslíš zadání tak je to přesně tak jak jsem napsal. Možná jsem to mohl napsat srozumitelněji,ale důležité je že jsme se nakonec domluvili a skriptík jsi zvládl na 1*
Díky moc,jsem tvůj dlužník,ovšem nevím jak ti to splatit... :-)

poslední verze, podle upraveného zadání :-p:

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 a přesunuty 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")
  	For i = 1 to 37
		Set f = fso.GetFolder(path & "\" & i)
		fso.MoveFile f.path & "\mapa_run_1.png", f.path & "\mapa_run_1_1.png"
		a = 1
		b = 3
		For j = 1 to 513
			stary = f.path & "\mapa_run_" & "1" & "_" & j & ".png"
			novy = f.path & "\" & i & "-" & ((j+8)\9) & "\" & a & b & ".png"
			fso.MoveFile  stary, novy
			b = b - 1
			
			if b = 0 then
				b = 3
				a = a + 1
				if a = 4 then
					a = 1
				end if
			end if
		next	
	next
end if

Zpět do poradny Odpovědět na původní otázku Nahoru