Jak zálohovat určitý počet záloh v .bat s odebraním nejstarší?
Ahoj zrádci.
Dotaz zní: Jak udělat v .bat, aby mi zálohoval deset dní denně složku souborů (to už mám a funguje), ale pokud bude zálohovat jedenáctý den, aby mi zároveň umazal tu první zálohu?
Díky za ochotu, ale obávám se že je to nad moje síly. Budu se snažit to nějak pochopit. Alespoň zhruba vím, co hledat.
Smaze vsechny soubory ve slozce "c:\windows\temp", starsi nez 11 dni. Testovano na W7 Enterprise...
Kdybys tam nemel forfiles, tak tady: x86
To forfiles jsem našel už v noci (nemusel jsem to instalovat - někde se to ve W7 už našlo), ale mazalo to jenom soubory (i v podsložkách).
Já potřebuju "něco", co by mi smazalo složku podle nejstaršího data vytvoření, anebo první, na kterou to padne.
Ved som to pisal v reakcii.
forfiles -p "c:\windows\temp" -d -11 -m *.* -c "cmd /c deltree @path"
alebo
forfiles -p "c:\windows\temp" -d -11 -m *.* -c "cmd /c if @isdir==TRUE deltree @path"
DIR /A-D /OD /B | C:\DOS\XSET /LINE 1 FILE
DELTREE %FILE%
Tohle mi nefunguje (zkoušel jsem změnit tu cestu C:\..., ale buď ji měnit nemám, nebo jsem dal nesprávnou.)
Asi nepotřebuju /LINE 1 FILE ale /LINE 1 Folder nebo co.
xset.exe si nakopiroval kde? To sa nevyskytuje v PC samo od seba. A pisal som ti
Pouzi to s forfiles a vyser sa na xset. Forfiles je jednoduchsie.
To jsem zkoušel změnit, ale nefunguje mi to.
Toto: forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE deltree @path" - taky nefunguje. Skript proběhne, ale nesmaže ani soubor, ani složku. -2 tam mám, protože starší zálohy zatím nemám.
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE echo @path"
vypise co?
ak nic, tak nefunguje hladanie tej zlozky. Ak vypise stare zlozky, tak nefunguje deltree tak si skus deltree zlozka rucne nech vies co to robi ci tam nepyta nejake otazky, pripadne si vygoogli switche pre deltree aby sa nic nepytal apod.
Vypíše mi to seznam složek v adresáři se zálohami. Konkrtétně jedinou takto starou složku (název).
A kedze pouzivas medzeru v ceste, tak potrebujes extra uvodzovky, co sa robi blbo lebo tam uz jedne su, ale udajne ma fungovat toto
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE deltree ^0x22@path^0x22"
Toto háže chybu:
deltree není názvem vnitřního ani vnějšího příkazu,
spustitelného programu nebo dávkového souboru.
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE echo @path"
Toto mi vypíše složku/složky. Teď bych tam potřeboval přidat něco, co by tu složku/složky smazalo (komplet, včetně podsložek a souborů).
Vo Win NT systemoch je namiesto deltree prikaz RMDIR -r
sorry ne -r ale rmdir /s, je v tom bordel
https://www.microsoft.com/resources/documentation/ windows/xp/all/proddocs/en-us/rmdir.mspx?mfr=true
Ano - rmdir (rd) znám, ale jak mu předat ten název složky?
Toto nefungovalo (házelo chybu).
Toto je konečně řešení:
Děkuju moc za trpělivost. Já bych mi na tvém místě nadával jako špaček!
A funguje to aj ked pouzijes cestu s medzerou? Napr. "E:\neco s mezerou\zalohy" ?
Ano, skutečnou cestu mám s mezerami.