Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak automatickou dávkou zálohovat složky do samostatných RAR archivů?

Hezký den,

prosím o rady...
OS Windows 10.
Na disku je velké množství složek (adresářů) v řádu tisíců, různých názvů a délek.
Jak automatickou dávkou zálohovat složky do samostatných RAR archivů?
Jak dávkové příkazy upravit tak, aby Rar.exe automaticky zpracoval všechny zdrojové složky, jednu po druhé a z každé automaticky vytvořil samostatný archív *.rar?

Prostým testem funguje dávkový soubor dorar.bat:
"d:\WinRAR\Rar.exe" a -r archiv zdroj
pause

Ze složky ZDROJ vytvoří ARCHIV.rar.

Předmět Autor Datum
Co tam těch řádků napsat víc ??? To snad nemyslíš vážně ...
dsa 05.04.2022 12:03
dsa
Rád bych, ale tohle je nad mé schopnosti.
ST 05.04.2022 12:24
ST
Nejdřív vypíšu seznam složek a přesměruju do souboru ... pak v tom souboru vhodným editorem doplním…
dsa 05.04.2022 12:34
dsa
Toto řešení nebude do budoucna univerzálně použitelné.
ST 05.04.2022 12:36
ST
To opravdu nebude, chtělo by to spíš aby vstupem byl přímo ten textový soubor, což při použití příka…
ml1 05.04.2022 13:51
ml1
Mockrát děkuji za snahu. Více se vyjádřím v reakci na https://pc.poradna.net/questions/3135580-jak-a…
ST 05.04.2022 15:05
ST
Použiješ cyklus FOR.... https://stackoverflow.com/questions/59228680/how-to-compress-each-subfolder…
host 05.04.2022 12:32
host
Díky. Snažil jsem se nejprve sám, ale dávkování je má slabá stránka. Vždycky mě z toho rozbolí hlava…
ST 05.04.2022 12:39
ST
Obávám se, že tohle přes GUI neuděláš. Ale nevím, WinRAR už několik let nepoužívám.
host 05.04.2022 13:15
host
Poslušně hlásím úspěch. Než sem dám finální řešení označitelné za konečné, aby to pomáhalo ostatním,…
ST 05.04.2022 15:18
ST
ÚSPĚCH! Funkční řešení... prosím o kontrolu. Třeba mne upozorníte na nějaké z neznalosti nepředpoklá…
ST 05.04.2022 15:43
ST
Používať RAR na zálohy je masochizmus... ak chcete prísť o dáta, prosím.
Ale 05.04.2022 16:42
Ale
V případě takových tvrzení uvítám faktické argumenty... Jedná se o zálohu uživatelských dat. Příprav…
ST 05.04.2022 17:37
ST
Nesejčkuj, neplaš, nie je to až také boľavé so stratou dát v prípade nástroja WinRar. (Na prenos dát…
Nuda 05.04.2022 17:43
Nuda
Tomu rozumím. Navrhované je dost rizikové. Poškozený zlomek image může znamenat nedostupnost všech d… poslední
ST 05.04.2022 18:03
ST

To opravdu nebude, chtělo by to spíš aby vstupem byl přímo ten textový soubor, což při použití příkazu snad možné je (alespoň jsem nabyl toho dojmu, když jsem si nápovědu k for někdy četl - je opravdu dlouhá, příkaz for má více módů, a já tehdy potřeboval něco úplně jiného).
A uznávám je to opravdu komplikované zadání, podle mě ale řešitelné.
Pokud mě paměť neklame, měl rar nějakou možnost uložit každou položku do samostatného archivu, ale to se týkalo asi souborů, ovšem když si zobrazuju nápovědu, tak to tam nikde nevidim.

Rozdělil bych si to na několik položek:
1. získat seznam adresářů, to snad nebude tak těžké (dir /s/ad+ atd.)
2. Najít způsob, jak tento seznam položku po položce procházet (zřejmě cyklem for dosu) a zkusit to na nějaké neškodné funkci třeba echo (jenom vypíše parametr)
3. Tuto testovací funkci nahradit rar s potřebnými parametry.

První a poslední položka je bez problémů, tu prostřední jsem nikdy nezkoušel, ale mělo by to být možné. Takže bych se soustředil, jestli je možné ze stdin získávat řádek po řádku a předávat je upravené dál jako součást příkazu.
Seznam bych předal přes stdout | stdin případně přesměrované na soubor, to je celkem jedno, ale pro program bych komunikaci přes std* nechal.

Když jsem naposledy potřeboval něco podobného, tak jsem si na to udělal dávku v matlabu, kde jsou trochu jiné možnosti. Nějak se mi tehdy nepodařilo přímo volat vypočítané příkazy (ta možnost volání příkazů systému tam je), tak jsem je sepsal do dávky a volal tuto dávku. Musel bych hledat ve svém archivu, ale šlo také o získání seznamu souborů a nějaký příkaz pro ně, ale ještě něco navíc, co si nevybavuju a kvůli čemu jsem to nemohl udělat v příkazovém řádku.

Díky. Snažil jsem se nejprve sám, ale dávkování je má slabá stránka. Vždycky mě z toho rozbolí hlava.
Vyzkouším to...

Ještě doplňující otázka - jak to udělat přímo v GUI WinRar? Prošel jsem 2x nastavení a su asi blbý...

Poslušně hlásím úspěch.
Než sem dám finální řešení označitelné za konečné, aby to pomáhalo ostatním, tak...

Cyklus for dělá mnou požadované.
@for /D %%I in ("N:\working\*") do @"%ProgramFiles%\WinRAR\Rar.exe" a -cfg- -ep1 -inul -m5 -r -- "%%I.rar" "%%I\"

Prosím ještě o radu. Jak univerzálně nahradit tu napevno danou vstupní cestu ke složce? Viz N:\working\*
Potřebuji univerzální řešení, abych v budoucnu nebylo nutné ruční upravování cesty.

Lze nějak automaticky převzít dávkovými příkazy cestu ke složce, ve které se spouští dávkový soubor?

Snažím se, ale nedaří se mi podle...

https://superuser.com/questions/1652732/how-to-get-the-directory-path-where-a-batch-file-is-called-from

https://stackoverflow.com/questions/3827567/how-to-get-the-path-of-the-batch-script-in-windows

ÚSPĚCH!
Funkční řešení... prosím o kontrolu. Třeba mne upozorníte na nějaké z neznalosti nepředpokládatelné budoucí problémy.

@for /D %%I in ("%~dp0\*") do @"%ProgramFiles%\WinRAR\Rar.exe" a -cfg- -ep1 -inul -m5 -r -- "%%I.rar" "%%I\"
pause

%~dp0 přebírá ze systému cestu ke spouštěné dávce. Na stejnou cestu jsou ukládané výsledné RAR archívy.

Nesejčkuj, neplaš, nie je to až také boľavé so stratou dát v prípade nástroja WinRar. (Na prenos dát na externom nostiči je úplne ideálny).

Jednoduchšie je dnes pri rýchlom HW radšej vyrábať skomprimnované zálohy dát celých logických oddielov prípadne iba vybratých súborov nejakým vhodným backupper SW rozdielovou alebo prírastkovou metódou, je to bez starosti plne automatické.

Len jedno mi neberie, na kieho šľaka je nutné vo Windows zálohovať, babrať sa s individuálnymi súbormi. Možno som nepochopil dopyt.

Tomu rozumím. Navrhované je dost rizikové. Poškozený zlomek image může znamenat nedostupnost všech dat uvnitř něj.

Proto bude vhodné použít RAR s možností...
-rr[N] = Add data recovery record

např. -rr10p vytvoří +10 % záznamu pro případnou obnovu, kdyby nastalo poškození archivu v důsledku třeba vadných sektorů HDD.

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