Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem automaticke kopirovani souboru

zdravim vsechny,

rad bych se zeptal, zda existuje neco jako automaticke kopirovani souboru. konkretne, co bych rad:

denne udelam 16screenu pomoci programu fast stone capture. kdyz je ukladam, automaticky se ukladaji do slozky pod jmenem Rok2013. nazvy souboru jsou ve formatu RRRRMMDD-## a ted bych chtel automaticky vsechny tyhle soubory rozkopirovt tak, aby se jednotlive soubory zkopirovaly do slozky odpovidajici poradovemu cislu v nazvu screenu. to znamena, ze dnesni screen 20130919-01 by se automaticky zkopiroval do slozky 01.

slo by to nejak?

diky vsem za napady

Předmět Autor Datum
a čomu hovoríš automaticky ? Ak to nevie ten soft , ktorý to tam ukladá, tak musí bežať ďalší, ktorý…
sakraforte 19.09.2013 17:42
sakraforte
bud tak, ze pobezi jiny soft, co to bude delat, ten muj to neumi a nebo alespon hromadne kopirovani…
mayerrs 19.09.2013 17:46
mayerrs
ak ich je len 16 za deň, tak to stačí roztriediť raz za deň. či ? to sa dá zlepiť aj batom, alebo sk…
sakraforte 19.09.2013 17:47
sakraforte
jj, ted uz to tridim, ale mam jeste 3roky zpetne.. a radsi bych netridil. tridim jeste nejake extra,…
mayerrs 19.09.2013 18:43
mayerrs
F3 hladať *01.jpg klik myšou ctrl-A kopirovať vložiť
sakraforte 19.09.2013 18:48
sakraforte
to mi prave nejde, protoze kdyz mam nazev souboru "20130501 01" a dam hledat "01" tak mi to vyjede v…
mayerrs 21.09.2013 20:23
mayerrs
Sakraforte ti psal, že máš hledat *01.jpg a ne jenom 01.
host 21.09.2013 21:25
host
to jsem si samosebou vyzkousel a kdyz to zkusis, tak to vyhleda i kombinaci v datumu.
mayerrs 23.09.2013 20:28
mayerrs
Tvoje súbory vyzerajú takto: 20130919-01 s pomlčkou? Skús ju použiť pri hľadaní...
pme 23.09.2013 20:30
pme
nene jsou bez pomlcky. format je: 20130909 01
mayerrs 24.09.2013 12:39
mayerrs
tak máš asi blbý systém. zrejme 7. v XP *01.jpg spolahlivo nájde len končiace 01.jpg
sakraforte 24.09.2013 13:20
sakraforte
Použi Total Commander. Bežne takéto finty pri hľadaní používam a nikdy nesklamal.
msx. 25.09.2013 14:48
msx.
@echo off echo kopiruje soubory ze zdroj\*.* do cil\01-31\*.* podle poradovych cisel set zdroj=d:\Ro…
lední brtník 21.09.2013 22:57
lední brtník
diky za kod, ale muzes me i navest, jak ho ma zprovoznit? ps: jsem sice naprosty laik ohledne progr…
mayerrs 23.09.2013 20:30
mayerrs
set zdroj=d:\Rok2013 set cil=d:\Rok2013 předpokládá to původní adresář s fotkami d:\Rok2013 a cílo…
lední brtník 23.09.2013 22:04
lední brtník
Klobouk dolů, tohle už dnes ovládá málokdo. Je vidět, že jsi "stará dobrá škola" a hlavně umíš! Až b…
ISO 24.09.2013 13:12
ISO
takze: vytvorilo to vsechny adresare, ale uz se tam nenakopirovaly zadne soubory. nevim, jestli tomu…
mayerrs 24.09.2013 13:45
mayerrs
jsem ten dotaz vydoloval, teď na to zírám: současné fotky se ukládají kam? "c:\rok2013", nebo "c:\us…
lední brtník 25.09.2013 08:53
lední brtník
mas pravdu, ta pomlcka tam neni. v zadani jsem ji tam dal, protoze jsem si myslel, ze to bude jen vy…
mayerrs 25.09.2013 10:26
mayerrs
struktura je šílenější, než jsem si myslel, to asi nebudu schopný nasimulovat. fouknu sem kód, který…
brum brum 25.09.2013 14:36
brum brum
perfektni, funguje to:-) ale: jedine co jsem necekal (a vlastne mi to ani nevadi), ze kazdy kopiro…
mayerrs 26.09.2013 09:07
mayerrs
no jo, jsem to netestoval. v 'xcopy' jsem předepsal i cílový název a to není dobrý nápad, xcopy pak…
lední brtník 26.09.2013 11:35
lední brtník
tak a ted vyvstala dalsi otazka:-) kdyz jsem to spustil, abych to vyskousel naostro, nahlasilo to u…
mayerrs 26.09.2013 13:53
mayerrs
psal jsem výše o atributech - a možná to taky nebyl dobrý nápad, zavádět to tam. soubory se hromadí…
lední brtník 27.09.2013 01:12
lední brtník
rozumim. diky moc za skvelou praci!! hodne chvilek mi to usetr:-) poslední
mayerrs 27.09.2013 15:21
mayerrs
@echo off
 echo kopiruje soubory ze zdroj\*.* do cil\01-31\*.* podle poradovych cisel
 set zdroj=d:\Rok2013
 set cil=d:\Rok2013
:ADRESARE
 for /l %%a in (1,1,9) do (if not exist %cil%\0%%a md %cil%\0%%a)
 for /l %%a in (10,1,16) do (if not exist %cil%\%%a md %cil%\%%a)
:SEZNAM
 dir %zdroj%\*.* /b /a:a /o:n > seznam.txt
:XCOPY
 for /f "tokens=1,2,3 delims=-." %%a in (seznam.txt) do xcopy %zdroj%\%%a-%%b.%%c %cil%\%%b\%%a-%%b.%%c /m /f /d
 del seznam.txt
:END

nekontroluje to správnost názvů souborů, tj. jestli se tam nepřipletou cizí. (pak by proměnná %%c byla prázdná nebo neobsahovala jpg/jpeg)
taky by šel název souborů rozparsovat na rok a podle toho modifikovat zdroj/cíl. ale to by mi tu úplně vyvětralo pivo.

diky za kod, ale muzes me i navest, jak ho ma zprovoznit?

ps: jsem sice naprosty laik ohledne programovani, ale z toho kodu vubec nevim, jak muze fungovat. jake si mam preddefonovat adresare atd. udelal jsem si podadresare 01 A, 02 B, 03 C,... zkratka, jak to rozchodim a jak to budu zpoustet?

set zdroj=d:\Rok2013
set cil=d:\Rok2013

předpokládá to původní adresář s fotkami d:\Rok2013 a cílové adresáře vzniknou v d:\Rok2013\01 ... d:\Rok2013\16
(kdyžtak si je tady změň podle svého, jen ať jsou bez mezery, neošetřil jsem uvozovky)

for /l %%a in (1,1,9) do (if not exist %cil%\0%%a md %cil%\0%%a)
for /l %%a in (10,1,16) do (if not exist %cil%\%%a md %cil%\%%a)

při spuštění se kontroluje, jestli existuje cílový adresář. pokud ne, vytvoří se "cíl"\01...09 a 10...16 pro tvých 16 fotek denně.
(po vytvoření adresářů jdou tyto dva řádky zaremovat, ale nic se nestane když zůstanou)

pak následuje vytvoření pomocného seznamu názvů fotek, jen pro přehled je setříděn podle data. seznam si všímá archívních bitů, ať to po výpadku nezkouší celé znovu.

mél jsi požadavek na kopírování, ne přesun:

for /f "tokens=1,2,3 delims=-." %%a in (seznam.txt) do xcopy %zdroj%\%%a-%%b.%%c %cil%\%%b\%%a-%%b.%%c /m /f /d

cyklus projde seznam, pomlčku a tečku v názvu použije jako oddělovač. z toho vykousne druhou pozici %%b = pořadové číslo, podle něj probíhá kopírování do předvoleného adresáře.
ať kopírování po výpadku a novém spuštění nekopíruje stejné soubory přes sebe, jednak je nastavován archívní bit, jednak je tam parametr "přepsat jen novějším".

pro vlastní pokusy - help viz:

for /?
dir /?
xcopy /?

...
a vidím v záhlaví pravopisnou chybu, má tam být:

echo kopiruje soubory ze zdroj\*.* do cil\01-16\*.* podle poradovych cisel

máš bohužel problém - nechal sis default zapnutý bezpečnostní průser windows = skryté přípony souborů.
celý ten formátovaný text máš uložit např. přes poznámkový blok na nějaké normální místo (nedoporučuju na plochu), s připonou .bat - např. d:\kopie_fotek.bat - přesvědčíš se příkazem:

dir d:\kopie*

jenže tupý poznámkový blok ti přidá příponu .txt (vznikne d:\kopie_fotek.bat.txt), ty tu blbost nevidíš a nepůjde ti nikdy spustit. potřebuješ normální editor nebo normálního správce souborů nebo normálně nastavené windows.

takze: vytvorilo to vsechny adresare, ale uz se tam nenakopirovaly zadne soubory. nevim, jestli tomu vadi pripona, kdyz jsi zminoval .jpg nebo .jepg, protoze ja pouzivam .png tak nevim, jestli to muze mit vliv. kazdopadne nejdriv jsem to zkusil ve svem obvyklem adresarim ale to nefungovalo vubec (jsou tam mezery), pak jsem si precetl, ze tammezery byt nemuzou a tak jsem to udelal v C:\AA a pak se stalo, jak jsem psal vyse. pouze adresare a ty jsou prazdne, nenakopirovalo se tam nic.

ps: pokud bys mi to jeste upravil, mohl bys to upravit i pro mezery v ceste?

diky moc!

jsem ten dotaz vydoloval, teď na to zírám:
současné fotky se ukládají kam? "c:\rok2013", nebo "c:\users\někdo na pc\dokumenty\rok 2013" ... kde všude mám čekat mezery? a cíl má být podadresář toho 2013, nebo jinde?

ale hlavně si protiřečí tyto věty:

nazvy souboru jsou ve formatu RRRRMMDD-##
dnesni screen 20130919-01 by se automaticky zkopiroval do slozky 01
udelal jsem si podadresare 01 A, 02 B, 03 C
mam nazev souboru "20130501 01(.png)

v zadání odděluješ pořadové číslo pomlčkou, ale níže v textu tvrdíš, že tam pomlčka není, ale mezera. co je správně, jaký je skutečný název těch fotek? protože právě pomlčka, kterou jsi nejdřív uvedl, se používá k třídění.

to "01 A" předpokládám že nemám brát vážně, ale použít přesně to, co je na konci neznámého názvu souboru.

mas pravdu, ta pomlcka tam neni. v zadani jsem ji tam dal, protoze jsem si myslel, ze to bude jen vyraznejsi. rikal jsem si, aby tam ta mezera nematla. nevedel jsem, ze je to tak dulezite. takze ja to jeste jednou shrnu.

adresar kam si ja davam fotky je: C:\Documents and Settings\Tomas Zelenka\Dokumenty\2. Trading\1. Daytrading\6. Screen shot\7. 2013

kazdy rok samozrejme zakladam novy Rok. (2006, 2007, ..)

a v tom adresari "2013" bych rad podaresare:

01, 02, 03

pravda je, ze rucne si je znacim jeste dvojpismenu zkratkou, takze finalne by to vypadalo takto: "01 CL, 02 HO, 03 RB, ..."

to ale nepotrebuju. staci mi nazev adreare jen jak jsem psal "01, 02, 03, .." protoze vim, jake cislo patri k jakemu dvojpismenu. to znamena, neber vazne ten muj priklad "01 A"..

________________________

snad jsem na nic nezapomel

struktura je šílenější, než jsem si myslel, to asi nebudu schopný nasimulovat.
fouknu sem kód, který se při vytváření nejdřív přepne do cílového adresáře, pak pod sebou vytvoří dvoumístné pořadové číslo podadresáře, kam se to kopíruje.
pokud by tam patřily dodatečné názvy 01 CL, 02 HO, 03 RB:
- musela by buď existovat převodní tabulka, podle které by se generovaly názvy,
- nebo nechat jen dvouciferné názvy a mít na ploše 16 výstižněji pojmenovaných zástupců.

@echo off
 set zdroj=C:\Documents and Settings\Tomas Zelenka\Dokumenty\2. Trading\1. Daytrading\6. Screen shot\7. 2013
 set cil=%zdroj%
 echo Kopiruje soubory ze '%zdroj%\*.*' do '%cil%\01-16\*.*' podle poradovych cisel
 mode con: lines=999
 color 70
:ADRESARE
 %cil:~0,2%
 cd "%cil:~2%"
 for /l %%a in (1,1,9) do (if not exist .\0%%a\*.* md 0%%a)
 for /l %%a in (10,1,16) do (if not exist .\%%a\*.* md %%a)
:SEZNAM
 dir "%zdroj%\*.*" /b /a:a /o:n > seznam.txt
:XCOPY
 for /f "tokens=1,2,3 delims=. " %%a in (seznam.txt) do xcopy "%zdroj%\%%a %%b.%%c" "%cil%\%%b\%%a %%b.%%c" /m /f /d
 pause
REM del seznam.txt
:END

umístění skladu fotek kdesi do profilu uživatele považuju za extrémně špatný nápad - jak kvůli zálohování samotného systému, tak kvůli obsluze a zálohování těch fotek.
i když nic nehavaruje, stačí jen když změníš místo ve firmě, nebo vyměníte systém za win7 a bude legrace.
proto jsou v batce zvlášť definované proměnné pro zdrojový a cílový adresář, kdyby se mělo úložiště změnit na normální místo (d:\), případně zdroj bude stejný a cílové roky se budou měnit.

perfektni, funguje to:-)

ale:

jedine co jsem necekal (a vlastne mi to ani nevadi), ze kazdy kopirovany soubor musim potvrdit tim, ze zmacknu "S". totiz, u kazdeho souboru mi vybehne, at rozhodnu, zda je to co se kopiruje soubor "S" a nebo adresar "A". takze jen drzim klavesu "S".

super je, ze se znovu nekopiruji uz jednou kopirovane soubory

a rad bych se zeptal. kdyz si tak ctu ten kod - resp. zdroj a cil, muzu si je nejak upravit? napriklad me napadlo, ze jen pro prehlednost bych si v adresari "7. 2013" udelal podadresar "5. Podle trhů" a teprve tento podadresar bude konecny cil kam se vytvori vsech 16 adresaru.

jinak - dekuju za kod, je to super usnadneni prace. sice vubec nevim, co je to za programovaci jazyk, ale bral bych to umet. jenze tohle je pro me naprosto neco nepochpitelnyho, takze opravdu smekam:-)

no jo, jsem to netestoval. v 'xcopy' jsem předepsal i cílový název a to není dobrý nápad, xcopy pak zbytečně řeší, co to je ten cíl. mírně řádek modifikovat:

:XCOPY
for /f "tokens=1,2,3 delims=. " %%a in (seznam.txt) do xcopy "%zdroj%\%%a %%b.%%c" "%cil%\%%b\" /i /m /f /d

změna zdroj=xxx a cíl=yyy:
na začátku jsou nastavené cesty.
dál se na ně schválně odvolávají %proměnné% - při změně cest xxx,yyy bude zbytek fungovat. co bych doporučil - nepoužívat diakritiku, ke štěstí bohatě stačí mezery v názvech.

když se letos stahují snímky do "...\7. 2013" a mají se roztřídit do "...\7. 2013\5. Podle trhu", pak změnit na začátku té batky:

set zdroj=C:\Documents and Settings\Tomas Zelenka\Dokumenty\2. Trading\1. Daytrading\6. Screen shot\7. 2013
set cil=%zdroj%\5. Podle trhu

v příloze je to celé opravené.

pokud by se cíl naprosto změnil, tj. nebyl by už podadresářem "C:\Documents and Settings\...\7. 2013", ale třeba v "c:\6.nove_trhy", musela by se vypsat celá nová cesta:

set cil=c:\6.nove_trhy

o "programování":
toto je syntaxe pro příkazový řádek ve windows, nápověda se dá vypsat /?, když člověk potřebuje něco upravit. řádky tvoří jednoduché skripty, nejde o programování.

tak a ted vyvstala dalsi otazka:-)

kdyz jsem to spustil, abych to vyskousel naostro, nahlasilo to uz jen "soubor nenalezen". zkopirovano 0 souboru. podotykam, ze to, co jsem uz mel vytvoreno - vsechny adresare 01.. vcetne jiz zkopirovanych souboru a i soubor "seznam.txt" jsem presunul jinam, aby uz tento test nic nenasel a nic ho nematlo. jak je mozne, ze nebylo nic nalezeno? zvlastni je, ze ikdyz jsem pustil tu predchozi verzi, tak nebyl nalezen zadny soubor ke zkopirovani. jakoby si to pamatovalo, ze uz ty soubory byly zkopirovany. jen je mi divny, ze soubor "seznam.txt" jsem dal pryc, takze jsem cekal, ze si to nebude pamatovat nic..

psal jsem výše o atributech - a možná to taky nebyl dobrý nápad, zavádět to tam.
soubory se hromadí ve zdrojovém adresáři možná několik let. batka je nepřesouvá, žádal jsi jen kopírování.
aby se neustále dokola neprocházely všechny soubory - nezjišťovalo se podle jejich názvu 300x ročně kam je dát, když už jednou zkopírované byly, využívá se archívní atribut, prastarý příznak. (atribut souboru je vidět v normálních správcích souborů, průzkumník ho ukáže po jednom na kartě vlastnosti souboru)
při kopírování se příznak u původního souboru vynuluje. nové kopírování si udělá seznam dosud nevynulovaných souborů a prochází jen tyto, na dříve zkopírované už kašle.
(seznam.txt se vytvoří vždy znovu a obsahuje jen to, co se má udělat. neobsahuje už vyřízené soubory. na konci batky je tuším jeho smazání zaremováno - jen z ladicích důvodů, jinak už není třeba.)

vlastně jsem nepočítal s tím, že celé se to bude spouštět několikrát z pokusných či nefunkčních důvodů, nebo protože se změní cíl. jakmile cyklus prošel všechny soubory, už nemá až do zítřka žádné nové a nebude nic dělat.
ona to není špatná funkce, já bych ji nerušil. jinak tě to bude vždy zdržovat procházením všech souborů a jejich kontrolou. ale pokud to vypadá, že by to mohlo být funkční, i cílový adresář už vypadá platný, dá se jednoduše obnovit výchozí stav:
nastavit všem obrázkům ve zdrojovém adresáři znovu atribut "archive".
průzkumník je blbý a hromadně to neumí. normální správci souborů to v pohodě zobrazí i změní.
bez správce souborů v příkazovém řádku:

attrib +a "C:\Documents and Settings\Tomas Zelenka\Dokumenty\2. Trading\1. Daytrading\6. Screen shot\7. 2013\*.png"

je tam filtr jen pro .png obrázky.
pro všechny soubory by to končilo: *.*

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