Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Záloha souborů - FORFILES + 7zip

Donedávna jsem řešil denní zálohu dat z PC dávkovým souborem pomocí DOSového prográmku pkzip.exe, který pomocí přepínače umí z daného umístění "vyzobat" všechny soubory s datumem shodným se systémovým datem (resp. soubory změněné v aktuální den).
Po přechodu na Win7 64b pkzip nelze použít, tak se to pokouším řešit pomocí příkazu FORFILES a 7za.exe (=command line verze 7zip), ale stále mě to neposlouchá a nevím, kde je zakopaný pes.

Pokud by byl někdo ochoten poradit, byl bych moc rád.
Zadání je tedy:
Z daného adresáře (včetně podadresářů) vybrat všechny soubory s aktuálním datem změny a zabalit je do zip souboru včetně plných cest odpovídajících zdrojové adresářové struktuře.
Děkuji

Předmět Autor Datum
Mám dojem(?), že 7-zip neumí vybírat soubory podle datumu. Tak bych to obešel. Soubory se systémový…
L-Core 17.12.2015 16:23
L-Core
Ono by to mělo jít i najednou, forfiles /p "c:\Aktual" /s /d 0 /c "cmd /c C:\Utils\7zip\7za u -tzip…
hrochoroh 17.12.2015 18:39
hrochoroh
problém je v tom, že otevíráš pro každý soubor novou instanci cmd.exe a velmi pravděpodobně narážíš…
touchwood 17.12.2015 21:05
touchwood
Díky, to řešení v odkazu jsem taky našel, ale nefunguje. Vypíše, že nebyly nalezeny soubory splňujíc…
hrochoroh 17.12.2015 21:23
hrochoroh
pak ale máš problém s forfiles. Já se musím přiznat, že mi vždy fungovaly..
touchwood 17.12.2015 21:27
touchwood
Jo, jo, problém tam každopádně nějaký je, ale já už si s tím nevím rady. Teď už jen doufám, že někdo…
hrochoroh 17.12.2015 21:38
hrochoroh
v první řadě si odlaď ten "vnější" forfiles, např. tak, že budeš vytvářet echem s přesměrováním do s…
touchwood 17.12.2015 22:12
touchwood
Tohle mi vypisuje přesně to, co potřebuju, ale nejde mi to nějak spojit s tou archivací forfiles /p…
hrochoroh 17.12.2015 22:43
hrochoroh
del %TEMP%\seznam-k-zalohovani.lst forfiles /p "r:\Test" /s /d 0 /c "cmd /c echo @PATH >> %TEMP%\sez…
randomguy 17.12.2015 23:02
randomguy
[url=http://del %TEMP%\seznam-k-zalohovani.lst forfiles /p "r:\Test" /M *.* /s /d 0 /c "cmd /c echo…
randomguy 17.12.2015 23:22
randomguy
Díky moc! Vidím, že se tím vážně zabýváš. Cesty jsem změnil a píše mi to "Incorrect command line" Na…
hrochoroh 17.12.2015 23:34
hrochoroh
-spf přepínač je až z novějších verzí, proto ta chyba. 7z.exe v15.12 tu je standalone 7z.exe v15.1…
randomguy 17.12.2015 23:43
randomguy
ajaj, chybí mu ještě 7z.dll (tedy jestli se mnou budeš mít ještě trpělivost - když tak můžeš na mail…
hrochoroh 17.12.2015 23:53
hrochoroh
installer přímo od zdroje 7z1512-x64.exe a pokud ho nechceš přímo nainstalovat, tak si z něj vytáhn…
randomguy 18.12.2015 00:03
randomguy
Funguje! Jsi génius, tisíceré díky!!! poslední
hrochoroh 18.12.2015 00:29
hrochoroh
Zkusil jsem tohle forfiles /p "c:\Aktual" /M *.* /s /d 0 /c "cmd /c C:\Utils\7zip\7za u -tzip C:\A\D…
hrochoroh 17.12.2015 23:39
hrochoroh
na to potřebuješ nejnovější 7z který má ten -spf switch
randomguy 17.12.2015 23:44
randomguy
v téhle příkazové řádce voláš 7zip k updatování archivu tolikrát, kolik máš souborů k zálohování. ra…
randomguy 17.12.2015 23:49
randomguy
nic neposílej, stáhl jsem si portable a jdu zkoušet....
hrochoroh 18.12.2015 00:01
hrochoroh

Mám dojem(?), že 7-zip neumí vybírat soubory podle datumu. Tak bych to obešel.

Soubory se systémovým datem vybereš:
FORFILES /D 0
Ty bych někam (dočasně) nakopíroval, pak na ně pustil 7-zip a všechny zazálohoval. Po záloze dočasný adresář smazal.

Vím, je to delší než kdyby to šlo najednou.

problém je v tom, že otevíráš pro každý soubor novou instanci cmd.exe a velmi pravděpodobně narážíš na problém otevřeného souboru archivu pro zápis, což lze v jednom okamžiku pouze v jedné instanci. Proto, dle mého mínění, je pak v archivu "náhodný" vzorek souborů.

edit: tady jsem našel řešení někoho jiného: http://superuser.com/questions/443729/windows-batc h-file-7-zip-archive-files-using-date-range

del %TEMP%\seznam-k-zalohovani.lst
forfiles /p "r:\Test" /s /d 0 /c "cmd /c echo @PATH >> %TEMP%\seznam-k-zalohovani.lst"
"c:\Program Files\7-Zip\7z.exe" a -tzip -scsDOS -spf2 r:\Moje-zaloha.zip @%TEMP%\seznam-k-zalohovani.lst

cesty si přepiš podle sebe, 7-zip mám aktuální verzi 15.12 kde už není 7za ale jen 7z.
mě to funguje...

[url=http://del %TEMP%\seznam-k-zalohovani.lst
forfiles /p "r:\Test" /M *.* /s /d 0 /c "cmd /c echo @PATH >> %TEMP%\seznam-k-zalohovani.lst"
"c:\Program Files\7-Zip\7z.exe" a -r -tzip -scsDOS -spf2 r:\Moje-zaloha.zip @%TEMP%\seznam-k-zalohovani.lst
]del %TEMP%\seznam-k-zalohovani.lst
forfiles /p "r:\Test" /M *.* /s /d 0 /c "cmd /c echo @PATH >> %TEMP%\seznam-k-zalohovani.lst"
"c:\Program Files\7-Zip\7z.exe" a -r -tzip -scsDOS -spf2 r:\Moje-zaloha.zip @%TEMP%\seznam-k-zalohovani.lst
[/url]

tak se opět potvrdilo že v každém programu je alespoň jedna chyba :-)

u toho forfiles přidej ještě parametr /M *.*
tím docílíš aby v seznamu nebyly i názvy samotných podadresářů.
7-zip jak vidí název podadresáře tak tam potom sype i celý jeho obsah.
Takhle budou v seznamu jen názvy jednotlivých souborů...

:puff:

Díky moc! Vidím, že se tím vážně zabýváš.
Cesty jsem změnil a píše mi to "Incorrect command line"
Napadá mě, jestli by to nemohlo být mojí verzí 7-zip, ale nerad bych instaloval celej novej 7zip. Nedalo by se poslat mi jen ten 7z.exe z tvé verze (tedy pokud jseš ochote a pokud to podle tebe může být řešením)
hrochoroh<zavináč>seznam.cz

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