Klasörün altında images\
aşağıdaki klasörler var:
Usa\
Italy\
Japan\
vb..
Ben yaratan bir senaryo istiyorum .zip
ben bu yüzden, bu klasörlerin her biri için usa.zip
, italy.zip
, japan.zip
.
Bunu nasıl yapabilirim?
Klasörün altında images\
aşağıdaki klasörler var:
Usa\
Italy\
Japan\
vb..
Ben yaratan bir senaryo istiyorum .zip
ben bu yüzden, bu klasörlerin her biri için usa.zip
, italy.zip
, japan.zip
.
Bunu nasıl yapabilirim?
Yanıtlar:
Ters eğik çizgi kullandığınız için bunun Windows olduğunu varsayıyorum.
Get 7za.exe (komut satırı sürümü 7-zip ) ve Gözlerinde farklı koydu %PATH%
.
Ardından Images\
dizininizde çalıştırın :
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
Veya toplu bir komut dosyasında:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Linux'ta olduğunuzu varsayarsak, böyle bir Bash betiği kullanabilirsiniz:
#!/bin/bash
IFS=$'\n'
for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
zip -r "$f" "$f"
done
Bu komut dosyası ilk argümanı klasör, bu durumda görüntüler olarak alır ve tüm klasörlerinizi (ABD, İtalya ve Japonya) almak ve onları aynı yere sıkıştırmak için tam bir seviye derinlemesine alır.
Eski zip dosyalarını veya kaynak klasörleri silmez. Zip, mevcut zip dosyalarını algılayacak ve tekrar çalıştırıldığında güncellenecek kadar akıllıdır. Eğer kaynak klasörlerdeki bir dosyayı silmek Ancak, bu olmaz zip dosyaları silinecek. Bu davranışı önceden varolan dosyaları silerek atlatabilirsiniz.
Bunun için Winrar'ı kullanabilirsiniz .
Tüm klasörlerinizi seçin, sağ tıklayın ve seçin Add to archive
. Şimdi Put each file to separate archive
sekmenin altındaki seçeneği seçin Files
:
Tamam'ı tıkladığınızda işiniz bitti. .Rar yerine .zip dosyaları istiyorsanız ZIP
, aşağıdaki General
sekmeden seçin Archive format
.
Bu cevap tarafından MVG Ubuntu benim için çalıştı:
Bu döngüyü şu alanlarda kullanabilirsiniz
bash
:for i in */; do zip -r "${i%/}.zip" "$i"; done
i
döngü değişkeninin adıdır.*/
geçerli dizinin her alt dizini anlamına gelir ve bu adlarda bir eğik çizgi içerir. Bunucd
gerçekleştirmeden önce doğru yere gittiğinizden emin olun ."$i"
eğik çizgi de dahil olmak üzere bu dizini adlandırır. Tırnak işaretleri, dizin adındaki boşlukların soruna neden olmamasını sağlar.${i%/}
gibidir$i
ancak sondaki eğik çizgi kaldırıldığında, zip dosyasının adını oluşturmak için bunu kullanabilirsiniz.Bunun nasıl çalıştığını görmek istiyorsanız,
echo
önüne bir ekleyinzip
ve yürütülen yerine yazdırılan komutları görürsünüz.