Van több száz mappám, benne fájlokkal. Mindegyik mappát össze akarom tömöríteni egy zip fájlba úgy, hogy a zip fájlneve megegyezzen a mappa nevével. Például:
Mappa1
>file1.jpg
>file2.jpg
...
Mappa2
>file1.jpg
>file2.jpg
...Ebből legyen: Mappa1.zip, Mappa2.zip ...
Íme egy .bat fájl. Másold ki, notepad elő, kopizd bele és mentsed pl folder_zipper.bat néven. Használata: Rakd bele abba a mappába ahol vannak a tömörítendő mappáid. Követelmény: Legyen 7zip telepítve a gépedre.
setlocal
for /d %%x in (%~dp0*.*) do "C:\Program Files\7-Zip\7z.exe" a -tzip -mx0 "%%x.zip" "%%x\"
endlocal
pause
exit
Egy kis magyarázat: a %~dp0 az egy környezeti változó ami mindig az aktuális munkakönyvtár teljes elérési útját adja vissza. Az ebben lévő összes fájlt veszem *.* és egy for ciklussal végigmegyek rajtuk. A 7zipnek megmondom, hogy az 'a' betűvel, hogy archiváljon és két paramétert adok: -tzip ami megmondja, hogy zip legyen a kimenet és a -mx0 ami a tömörítés mértékét 0-ra állítja, azaz semennyit nem tömörít csak raktároz a szkript. Nekem erre volt szükségem. Ha nagyobb tömörítési arányt szeretnél, akkor használd a -mx1 ... -mx9 kapcsolókat ahol értelemszerűen 1=minimumm, 9=maximum.
További 7zip kapcsolók, ha érdekel: http://www.dotnetperls.com/7-zip-examples
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.