Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Czym porównać zawartość folderów

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Czym porównać zawartość folderów
From: "Marcin G." <sq9etc_usun_to_@poczta.onet.pl>
Date: Mon, 15 May 2017 21:13:52 +0200
Użytkownik "Yerine Ictimai" napisał w wiadomości grup dyskusyjnych:ofcibs$i19$1@dont-email.me...
...
Podziel sie publicznie plz, wiecej ludzi chcialoby z tego skorzystac.

A ciekawe w czym ten batch napisales?
...




Skrypt wykonujący pełne archiwum:

)
@Rem
@Echo Off
Set MyDate=%date%
Set MyDate=%MyDate:/=_%
set Year=%MyDate:~0,4%
set MyYM=%MyDate:~0,7%
)

Title Kompresja folderu Work.
"C:\Program Files\7-zip\7zG.exe" a -mx9 -ssw E:\Archiwum\%Year%\Work_%Year%.7z D:\Work
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

Title Kompresja elementów folderu użytkownika Ja.
"C:\Program Files\7-zip\7zG.exe" a -mx9 -ssw E:\Archiwum\%Year%\Ja_%Year%.7z @C:\Users\Ja\Desktop\Files_Ja.txt
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

Title Kompresja elementów folderu publicznego i innych.
"C:\Program Files\7-zip\7zG.exe" a -mx9 -ssw E:\Archiwum\%Year%\Public_%Year%.7z @C:\Users\Ja\Desktop\Files_P.txt
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

@Echo On

shutdown -s -t 300 -c "Trwa zamykanie systemu..." -f



Skrypt wykonujący archiwum różnicowe:

)
@Rem
@Echo Off
Set MyDate=%date%
Set MyDate=%MyDate:/=_%
set Year=%MyDate:~0,4%
set MyYM=%MyDate:~0,7%
)

Title Kompresja folderu Work.
"C:\Program Files\7-zip\7zG.exe" u -mx9 -ssw E:\Archiwum\%Year%\Work_%Year%.7z -u- -up0q3r2x2y2z0w2!E:\Archiwum\%Year%\Work_%MyYM%.7z D:\Work
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

Title Kompresja elementów folderu użytkownika Ja.
"C:\Program Files\7-zip\7zG.exe" u -mx9 -ssw E:\Archiwum\%Year%\Ja_%Year%.7z -u- -up0q3r2x2y2z0w2!E:\Archiwum\%Year%\Ja_%MyYM%.7z @C:\Users\Ja\Desktop\Files_Ja.txt
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

Title Kompresja elementów folderu publicznego i innych.
"C:\Program Files\7-zip\7zG.exe" u -mx9 -ssw E:\Archiwum\%Year%\Public_%Year%.7z -u- -up0q3r2x2y2z0w2!E:\Archiwum\%Year%\Public_%MyYM%.7z @C:\Users\Ja\Desktop\Files_P.txt
:IF ERRORLEVEL 1 (
:   PAUSE
:   EXIT %ERRORLEVEL%
:)

@Echo On

shutdown -s -t 300 -c "Trwa zamykanie systemu..." -f



Zawartość pliku Files_Ja.txt:

"C:\Users\Ja\Contacts"
"C:\Users\Ja\Desktop"
"C:\Users\Ja\Documents"
"C:\Users\Ja\Downloads"
"C:\Users\Ja\Favorites"



Zawartość pliku Files_P.txt:

"C:\Users\Public\Desktop"
"C:\ProgramData\Microsoft\Windows\Start Menu"




Trochę objaśnień:
W każdym z poleceń pakowania widać 3 ścieżki. Pierwsza to ścieżka do programu 7zG.exe (wchodzi w skład pakietu 7-Zip), druga to ścieżka do archiwum, trzecia to ścieżka do pakowanego folderu lub do pliku tekstowego zawierającego ścieżki folderów do spakowania (jak widać ścieżkę do tego pliku należy poprzedzić znakiem @.
Wystarczy zamiast moich ścieżek typu D:\Work itp. podstawić swoje.

Dwa pierwsze skrypty są to zwykłe BAT-y wykorzystujące komendy wiersza poleceń programu 7-Zip.

W folderze E:\Archiwum co rok tworzy mi się folder o nazwie jak numer danego roku.
W każdym z tych podfolderów są pliki, np.:
Ja_2017-02.7z
Ja_2017-03.7z
Ja_2017-04.7z
Ja_2017-05.7z
Ja_2017.7z
Public_2017-02.7z
Public_2017-03.7z
Public_2017-04.7z
Public_2017-05.7z
Public_2017.7z
Work_2017-02.7z
Work_2017-03.7z
Work_2017-04.7z
Work_2017-05.7z
Work_2017.7z

Pliki bez numeru miesiąca w nazwie to archiwa pełne wygenerowane przez skrypt nr 1. Pliki z numerem miesiąca w nazwie to archiwa różnicowe (względem archiwum pełnego, czyli z początku roku) wygenerowane przez skrypt nr 2. Podobnie można sobie zrobić np. pełne archiwum co miesiąc, a różnicowe względem początku miesiąca codziennie. Takie coś też stosuję. Wadą podanego rozwiązania jest, że wykonywanie skryptu zatrzyma się poleceniu, które próbowało skompresować otwarty plik. W takim przypadku okienko z paskiem postępu programu 7zG.exe nie zamyka się automatycznie, tylko czeka, aż zrobi to użytkownik. Wtedy komputer niestety nam się nie zamknie po wykonaniu archiwum (polecenie "shutdown")


Pozdrawiam,
Marcin G.


---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie 
antywirusowe Avast.
https://www.avast.com/antivirus


<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>