Předmět Autor Datum
Tak pocitej v tom cyklu do jedenacti, pak zazalohuj, smaz co potrebujes a vyresetuj counter.
MaSo 14.05.2014 23:02
MaSo
No, zapomněl jsem skromně dodat, že jsem batové jelito. Nějaký příklad by mi bodnul.
IQ37 14.05.2014 23:03
IQ37
Pro inspiraci: @echo off set /a x=0 :while if %x% lss 5 ( echo %x% pause>nul set /a x+=1 goto :whil…
MaSo 14.05.2014 23:10
MaSo
A jak mas urobene teraz to pocitanie do 10 dni?
MM.. 14.05.2014 23:05
MM..
Nemám to počítané. Prostě každý den přibude záloha, ale nechci nekonečný počet záloh. Stačí mi např.…
IQ37 14.05.2014 23:06
IQ37
Aha, tak to ale "kapku" meni situaci...
MaSo 14.05.2014 23:14
MaSo
Ano, ten tvůj příklad bych na tohle asi neaplikoval.
IQ37 14.05.2014 23:17
IQ37
No, tak si jeste proste naplanuj jeste ulohu, ktera kazdy jedenacty den smaze nejstarsi soubor v tom…
MaSo 14.05.2014 23:21
MaSo
Jo, díky, zkusím to. Myslel jsem si, že by to šlo nacpat do jednoho souboru. Ale není podmínkou.
IQ37 14.05.2014 23:23
IQ37
A ked zabudne 10dni spustit zalohovaciu ulohu tak 11ty den zisti ze nema uz zalohu ziadnu :-)
MM.. 14.05.2014 23:27
MM..
:-) Predpokladam, ze to zalohovani ma naplanovane na kazdy den, automaticky...
MaSo 14.05.2014 23:30
MaSo
jj - píšu to výše.
IQ37 14.05.2014 23:31
IQ37
Tak pri takomto nazyvani zlozky nemas sancu vediet jak presne sa volala ta pred 10 dnami. Musel by…
MM.. 14.05.2014 23:24
MM..
Bude to Můj boj... :-)
IQ37 14.05.2014 23:30
IQ37
Tato moznost co som pisal je relativne jednoducha Keby si tie zlozky cisloval od 1 po 10, napr. "E:…
MM.. 14.05.2014 23:46
MM..
Já bych si to představoval tak, že po spuštění toho scriptu se načte první složka v adresáři (nejdří…
IQ37 14.05.2014 23:59
IQ37
Mazanie najstarsieho suboru uz mas predsa v tom linku vyssie DIR /A-D /OD /B | C:\DOS\XSET /LINE 1 F…
MM.. 15.05.2014 00:19
MM..
a namiesto DEL %file% pouzijes DELTREE %file% pretoze chces mazat cely adresar ktory neni prazdny
MM.. 15.05.2014 00:21
MM..
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ň zhru…
IQ37 15.05.2014 00:39
IQ37
forfiles -p "c:\windows\temp" -s -d -11 -m *.* -c "cmd /c del /f /q @path" Smaze vsechny soubory ve…
MaSo 15.05.2014 08:15
MaSo
On chce mazat podzlozky, tak asi deltree namiesto del. Ci tam musi zmenit este nieco ine to netusim
MM.. 15.05.2014 10:07
MM..
-s znamena, at prochazi i podslozky... jo tak, onchce mazat adresare, tak to deltree a -s muze vyho…
MaSo 15.05.2014 10:12
MaSo
To forfiles jsem našel už v noci (nemusel jsem to instalovat - někde se to ve W7 už našlo), ale maza…
IQ37 15.05.2014 12:16
IQ37
Pouzij misto DEL prikaz DELTREE.
MaSo 15.05.2014 12:18
MaSo
Ved som to pisal v reakcii. forfiles -p "c:\windows\temp" -d -11 -m *.* -c "cmd /c deltree @path"…
MM.. 15.05.2014 12:19
MM..
DIR /A-D /OD /B | C:\DOS\XSET /LINE 1 FILE DELTREE %FILE% Tohle mi nefunguje (zkoušel jsem změnit tu…
IQ37 15.05.2014 12:20
IQ37
OMG... pouzi to forfiles v kombinaci s DELTREE, tak ti pise MM.. vyse.
MaSo 15.05.2014 12:22
MaSo
xset.exe si nakopiroval kde? To sa nevyskytuje v PC samo od seba. A pisal som ti DIR /A-D /OD /B mu…
MM.. 15.05.2014 12:24
MM..
To jsem zkoušel změnit, ale nefunguje mi to. Toto: forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cm…
IQ37 15.05.2014 12:44
IQ37
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE echo @path" vypise co? ak nic,…
MM.. 15.05.2014 12:52
MM..
Vypíše mi to seznam složek v adresáři se zálohami. Konkrtétně jedinou takto starou složku (název).
IQ37 15.05.2014 12:59
IQ37
A kedze pouzivas medzeru v ceste, tak potrebujes extra uvodzovky, co sa robi blbo lebo tam uz jedne…
MM.. 15.05.2014 12:56
MM..
Toto háže chybu: deltree není názvem vnitřního ani vnějšího příkazu, spustitelného programu nebo dáv…
IQ37 15.05.2014 13:08
IQ37
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE echo @path" Toto mi vypíše slož…
IQ37 15.05.2014 13:11
IQ37
Vo Win NT systemoch je namiesto deltree prikaz RMDIR -r
MM.. 15.05.2014 13:16
MM..
sorry ne -r ale rmdir /s, je v tom bordel https://www.microsoft.com/resources/documentation/ windows…
MM.. 15.05.2014 13:18
MM..
Ano - rmdir (rd) znám, ale jak mu předat ten název složky?
IQ37 15.05.2014 13:21
IQ37
forfiles -p "c:\zaloha\temp" -d -2 -m *.* -c "cmd /c if @isdir==TRUE rmdir /s ^0x22@path^0x22"
MM.. 15.05.2014 13:21
MM..
Toto nefungovalo (házelo chybu). Toto je konečně řešení: forfiles -p "E:\Zaloha\Podsložky" -d -2…
IQ37 15.05.2014 13:30
IQ37
A funguje to aj ked pouzijes cestu s medzerou? Napr. "E:\neco s mezerou\zalohy" ?
MM.. 15.05.2014 13:54
MM..
Ano, skutečnou cestu mám s mezerami. poslední
IQ37 15.05.2014 14:17
IQ37

Nemám to počítané. Prostě každý den přibude záloha, ale nechci nekonečný počet záloh. Stačí mi např. 10.

set datetimef=%date% v %time:~0,2% %time:~3,2% %time:~6,2%
xcopy "K:\Zalohovana slozka\*.*" "E:\Cilova slozka\%datetimef%\Zaloha\" /h/e/k/c

Spouštím Správcem úloh automaticky v určenou hodinu.

Tak pri takomto nazyvani zlozky nemas sancu vediet jak presne sa volala ta pred 10 dnami.

Musel by si do toho bat urobit cyklus FOR, pre vsetky adresare v E:\Cilova slozka\ a pocitat ich, a ak by si zistil ze ich je 10 tak by si musel zistit ktora ma najmensi datum, co je dost problem ak mas na zaciatku den a ne rok, takze to je v pricipe velmi problematicke takto jak to robis. Prip. by si mohol urobit dir /B so zoradenim podla data vytvorenia a z neho prvy riadok by bol ta najstarsia zlozka

Keby si tie zlozky cisloval od 1 po 10, napr. "E:\Cilova slozka\Zaloha1\%datetimef%\" az "E:\Cilova slozka\Zaloha10\%datetimef%\" alebo aspon "E:\Cilova slozka\1\%datetimef%\" az "E:\Cilova slozka\10\%datetimef%\" tak by to bolo jednoduche, zmazal by si zlozku cislo 10, a v cykle FOR %i od 1 po 9 by si urobil set j=%i%+1, a premenoval zlozku %i% na zlozku %j% prikazom rename, a potom by si vytvoril novu zlozku 1.

Tato moznost co som pisal je relativne jednoducha

Keby si tie zlozky cisloval od 1 po 10, napr. "E:\Cilova slozka\Zaloha1\%datetimef%\" az "E:\Cilova slozka\Zaloha10\%datetimef%\" alebo aspon "E:\Cilova slozka\1\%datetimef%\" az "E:\Cilova slozka\10\%datetimef%\" tak by to bolo jednoduche, zmazal by si zlozku cislo 10, a v cykle FOR %i od 1 po 9 by si urobil set j=%i%+1, a premenoval zlozku %i% na zlozku %j% prikazom rename, a potom by si vytvoril novu zlozku 1.

Já bych si to představoval tak, že po spuštění toho scriptu se načte první složka v adresáři (nejdřív asi seřadit podle data vytvoření) a smaže se. Pak se udělá nová záloha (složka). Takže mi chybí ten (jeden nebo více) řádků na začátek toho mého scriptu.

Mazanie najstarsieho suboru uz mas predsa v tom linku vyssie
DIR /A-D /OD /B | C:\DOS\XSET /LINE 1 FILE
DEL %FILE%
potrebujes nejake xset.exe neviemskade a upravis tu cestu na neho namiesto toho C:\DOS\
DIR /A-D /OD /B musis zmenit na vypisovanie adresarov t.j. DIR /AD /OD /B

Ale tvoj problem je ze ak tam budes mat len jednu zalohu, tak si zmazes tu jednu, t.j. musis si nejak spocitat ci uz ich tam mas 10. Googli si bat count files in directory napr. http://stackoverflow.com/questions/11004045/batch- file-counting-number-of-files-in-folder-and-storin g-in-a-varible ta druha moznost naprikald, ale to dir musis zmenit aby vypisoval directories (tusim dir /AD /B)

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.

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