Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Kopirovat a nahradit subory v nezhodnych adresaroch

Zdravim,
mam disk rozdeleny na 3 oddiely a potreboval by som nahradit niekolko suborov na jednom z nich subormi z druheho oddielu. Problemom je, ze su umiestnene v roznych adresaroch. Som zaciatocnik a preto to vysvetlim "polopate" Na disku E mam asi 100 adresarov, v kazdom z nich je 1-5 suborov. Na disku D sa nachadzaju tiez tieto subory, len su umiestnene v roznych inych adresaroch. Subory sa navzajom zhoduju len nazvom, nie velkostou. Potrebujem cez nejaky program alebo ako nahradit subory na disku D tymi z disku E. Je mozne, ze na disku D sa mozu niektore subory nachadzat aj viackrat, tak by ich bolo potrebne prepisat vsetky. Subory pritom musia zostat na svojom povodnom mieste. Skusal som pouzit Total commander, ale priznam sa, ze som to, ak sa to teda cez neho da, nevedel.
Da sa to nejako vyriesit? Mam Windows Vista Home Premium.
Vopred vdaka.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Ono to nějak půjde... 1. Pokud jsou na disku E ty soubory opravdu jedinečné, tak je přes Total Comm…
JoDiK 29.10.2007 16:35
JoDiK
Fuuuha, tak to je na mna dost komplikovane, mozno to skusim, ked bude na to cas. Ale ci to zvladnem,…
Alex 29.10.2007 18:49
Alex
Na komplikované zadání komplikované řešení... Pokud jsou na D-čku víckrát nevadí, pokud na E-čku tak… poslední
JoDiK 30.10.2007 16:49
JoDiK

Ono to nějak půjde...

1. Pokud jsou na disku E ty soubory opravdu jedinečné, tak je přes Total Commander zkopíruj do jedné pomocné složky (vlevo zobrazit všechny i z podsložek Ctrl+B, vpravo pomocná složka, kopírovat) třeba do E:\VSECHNY.

2. Vyrob přesměrováním výstupu DIR seznam všech souborů na D včetně umístění a ulož třeba taky do té pomocné složky, což zařídíš spuštěním příkazu DIR v příkazovém řádku Total Commanderu:

DIR D:\*.* /s /b /a-d > E:\VSECHNY\kopiruj.bat

soubor kopiruj.bat bude obsahovat něco takovéhoto:

D:\slo1\soubc.txt
D:\slo2\souba.txt
D:\slo3\soubb.t xt
D:\slo4\souba.txt

3. pomocí nějakého textového editoru kerej umí regulární výrazy (například shareware Editplus nezapomeň zaškrtnout Regular expression) uprav soubor kopiruj.bat nahrazováním (Search-Replace) na následující tvar:

copy E:\VSECHNY\soubc.txt D:\slo1\soubc.txt
copy E:\VSECHNY\souba.txt D:\slo2\souba.txt
copy E:\VSECHNY\soubb.txt D:\slo3\soubb.txt
copy E:\VSECHNY\souba.txt D:\slo4\souba.txt

Regulární výrazy pro tento případ budou:

Find what: (.*)(\\)(.*)
Replace with: copy E:\VSECHNY\\\3 \0

V případě, že názvy souborů obsahují mezery a jiné podivné znaky, musíš je uzavřít do uvozovek:

copy "E:\VSECHNY\soubc.txt" "D:\slo1\soubc.txt"
copy "E:\VSECHNY\souba.txt" "D:\slo2\souba.txt"
copy "E:\VSECHNY\soubb.txt" "D:\slo3\soubb.txt"
copy "E:\VSECHNY\souba.txt" "D:\slo4\souba.txt"

To zařídíš jen úpravou toho nahrazování

Replace with: copy "E:\VSECHNY\\\3" "\0"

No a pak stačí spustit soubor kopiruj.bat

V případě, že Visty nemají příkaz DIR, nebo u něj mají jiné parametry, nebo neumí přesměrovávat, nebo neumí dávkové soubory, tak nás Bůh ochraňuj před takovým zlem...

Fuuuha, tak to je na mna dost komplikovane, mozno to skusim, ked bude na to cas. Ale ci to zvladnem, to neviem.
A nedalo by sa nejako zistit, ze ci sa tie subory v tom disku D vobec nachadzaju aj viackrat?
Ak nie, tak by stacilo dat v TC Ctrl+B na obidve strany a len to prekopirovat, nie?
Diky.

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