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
a čomu hovoríš automaticky ? Ak to nevie ten soft , ktorý to tam ukladá, tak musí bežať ďalší, ktorý bude periodicky kontrolovať ten adresár a rozhadzovať to kam chceš.
bud tak, ze pobezi jiny soft, co to bude delat, ten muj to neumi a nebo alespon hromadne kopirovani nejakym snadnym zpusobem.
ak ich je len 16 za deň, tak to stačí roztriediť raz za deň. či ?
to sa dá zlepiť aj batom, alebo skriptom.
jj, ted uz to tridim, ale mam jeste 3roky zpetne.. a radsi bych netridil. tridim jeste nejake extra, ktere z nich vybiram manuelne, ale tyhle co jsem psal, bych docela rad automaticky.
F3 hladať *01.jpg klik myšou ctrl-A kopirovať vložiť
to mi prave nejde, protoze kdyz mam nazev souboru "20130501 01" a dam hledat "01" tak mi to vyjede vsechny soubory, protoze ve vsech je kombinace "01" i mimo poradove cislo na konci..
Sakraforte ti psal, že máš hledat *01.jpg a ne jenom 01.
to jsem si samosebou vyzkousel a kdyz to zkusis, tak to vyhleda i kombinaci v datumu.
Tvoje súbory vyzerajú takto: 20130919-01 s pomlčkou? Skús ju použiť pri hľadaní...
nene jsou bez pomlcky. format je: 20130909 01
tak máš asi blbý systém. zrejme 7. v XP *01.jpg spolahlivo nájde len končiace 01.jpg
Použi Total Commander. Bežne takéto finty pri hľadaní používam a nikdy nesklamal.
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?
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)
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:
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:
...
a vidím v záhlaví pravopisnou chybu, má tam být:
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:
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.
Klobouk dolů, tohle už dnes ovládá málokdo. Je vidět, že jsi "stará dobrá škola" a hlavně umíš! Až budu něco potřebovat, tak se s důvěrou určitě obrátím na tebe.
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:
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ů.
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:
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:
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:
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:
je tam filtr jen pro .png obrázky.
pro všechny soubory by to končilo: *.*
rozumim. diky moc za skvelou praci!! hodne chvilek mi to usetr