Merhaba, son makalelerimde biraz son kullanıcı işletim sistemlerinde kullanılan işlevlere yöneldim. Bunun temel nedeni geniş kitleler tarafından sorgulanan konular olması. Bu makalemizde ise script ile dosya sıkıştırma ve silme işlemleri yapacağız. Sonrasında bu işlemleri zamanlanmış bir göreve bağlayarak otomatize edeceğiz.
Biz senaryomuzda bir klasörümüzdeki dosyaları, farklı bir sürücü içinde bulunan klasör içene sıkıştırma işlemi yapacağız. Sonrasında sıkıştırılan klasör ve dosyaları siliyor olacağız. Adımlarımıza geçelim.
D: sürücümüz içerisinde Test isimli bir klasörümüz var.
Klasör içerisinde klasör ve dosyalar mevcut.
E:\ sürücümüz üzerinde yine Test_Backup isimli boş bir klasörümüz var.
Sıkıştırma işlemlerini Winrar scripti kullanarak yapacağız. Programımız aşağıda görüldüğü gibi kurulu durumda.
Öncelikle işlemlerimizi komut satırı üzerinden test ederek çalıştıralım ve sonrasında bunu script haline getireceğiz.
CMD üzerinden Winrar programımızın kurulu olduğu dizine girelim.
Sıkıştırma için aşağıdaki komut setini kullanmamız gerekmekte.
rar a -r “E:\SIKIŞTIRMA HEDEFİ\DOSYA İSMİ%DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~-5,2% .rar” “D:\SIKIŞTIRILACAK KAYNAK”
Bizim klasörlerimize göre yorumlayarak olursak komut aşağıdaki gibi oluyor.
rar a -r “E:\Test_Backup\Yedek_Log_%DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~-5,2% .rar” “D:\Test”
Burada birçok parametremiz var. Bunlar Winrar programının kullandığı parametreler. Bu nedenle Winrar parametrelerinin tamamını aşağıda paylaşıyorum. Command promt üzerinde winrar dizininde C:\Program Files\Winrar\rar ? komutu ile zaten tüm parametreleri görmeniz mümkün. Ben temel kullanılan parametreleri paylaşıyor olacağım.
Parametre | Açıklama |
a | Dosyaları arşive ekle |
c | Arşive açıklama ekle |
ch | Arşiv parametrelerini değiştir |
cw | Arşiv açıklamasını dosyaya yaz |
d | Dosyaları arşivden sil |
e | Dosyaları arşiv yolları olmaksızın çıkart |
f | Arşivdeki dosyaları tazele |
i[par]=<diz> | Arşivlerde dizi bul |
k | Arşivi kilitle |
l[t[a]b] | Arşiv içeriğini listele [teknik[tümü] |
m[f] | Arşive taşı [sadece dosyalar] |
p | Dosyayı standart çıkış (stdç)’a yaz |
r | Arşivi onar |
rc | Eksik ciltleri tekrar yapılandır |
rn | Arşivlenmiş dosyaları yeniden adlandır |
rr[N] | Veri kurtarma kaydı ekle |
rv[N] | Kurtarma ciltleri oluştur |
s[ad|-] | Arşivi SFX’e veya SFX’den dönüştür |
t | Arşivlenmiş dosyaları test et |
u | Arşivdeki dosyaları güncelle |
v[t[a]b] | Arşivi ayrıntılı olarak listele [teknik[tümü] |
x | Dosyaları tam yol adıyla çıkart |
Yukarıdaki komuttan setinden sonra belirlediğimiz klasör içerisinde yer alan klasör ve dosyalarımız hedef dizine arşivlendi. İşlemlerin sorunsuz olarak yapıldığını dosyaların sonunda yer alan Tamam ibaresinden görebiliyoruz.
Winrar ile belirlediğimiz dizindeki dosyaların hedef dizin üzerine arşivlendiğini aşağıda görebiliyoruz.
Arşiv dosyamızı çift tıkladığımızda içeriğinin sorunsuz olduğunu görebiliyoruz.
Şimdi Arşivlenen Klasör içerisindeki dosyalarımızı silelim. Ben bilerek işlemleri farklı komut setleri kullanarak uzatıyorum. Bunun nedeni farklı komutları görerek örnekleri çoğaltmak. Scrit yazma konusunda herkesin yoğurt yeme yöntemi farklı olabilir. Scriptler basma kalıp tek düze değildir. Kodu yazan dileği şekilde esnetip bükebilir. Ben aşağıdaki komutlarla dilinecek klasörü bir değişkene atayıp, değişken içerisine girdikten sonra silme işlemini yapıyorum.
set folder=”D:\Test”
cd /d %folder%
del /S /Q *.*
Silme işlemi tamamlandı fakat dosyalar silinmiş ama klasörler kalmış. Örneği farklılaştırmak adına değişik komutlar kullanıyoruz. Del komutu dosyaları siler biz klasörleri kullanmak için farklı komut kullanacağız. Komuttan sonda durum aşağıdaki gibi.
Aşağıdaki komut setimiz ile klasörleri silelim. RD komutu klasör silmekte kullanılır.
rd /S /Q “C:\Test\Tools”
rd /S /Q “C:\Test\Winscp”
Komutumuzun çıktısı aşağıdaki gibidir. Bu işlemden sonra klasörlerde silinmiş oldu.
Şimdi bu komutların hepsini bir bat dosyası içerisinde toplayarak tüm işlemleri tek seferde yapalım. Ben silmiş olduğum dosyaları tekrardan testlerimizi yapabilmek için aynı klasöre kopyalıyorum.
Aşağıda olduğu gibi komutlarımızı tek bir notepad içerisine yazıyorum.
C:
cd\
cd C:\Program Files\WinRAR
rar a -r “E:\Test_Backup\Yedek_Log_%DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~-5,2% .rar” “D:\Test”
set folder=”D:\Test”
cd /d %folder%
del /S /Q *.*
rd /S /Q “C:\Test\Tools”
rd /S /Q “C:\Test\Winscp”
exit
Dosyamızın uzantısını bat olarak değiştirelim gelen uyarıyı Evet ile geçelim.
Batch dosyamızı hazırladık. Şimdi sıra bunu zamanlanmış bir göreve bağlayarak belirlenen zamanda otomatik olarak işlem yaptıracağız. Bu işlem benim aşırı log üreten bir sistemim için gerekli oldu. Şimdi bu yöntemle günü geçen önemsiz loğları sıkıştırıp farklı bir dizin üzerine alıyorum. Yeni loğların yazılması için eski loğları siliyorum. Bu tarz komutlar hayatımızı kolaylaştırabiliyor. Bunu zamanlanan göreve bağlamak ise iş yükümüzü alıp sadece kontrol ederek işimizi görmemize yarıyor. Görev Zamanlayıcı’yı açalım.
Açılan ekranımızda Görev Zamanlayıcı’ya sağ tıklayarak açılan menüden Temel Görev Oluştur… kısmını tıklayalım.
Görevimize biri isim ve açıklama yazıp İleri butonu ile sonraki adıma geçelim.
Görev zaman periyodunu seçelim ben bu işlemi günlük olarak yapacağım için Günlük seçimini yaparak İleri butonuna tıklayıp sonraki adıma geçiyorum.
İşlemin zamanını seçip günde kaç kez çalışacağına dair periyodu bu ekrandan belirleyebiliriz. Biz gece yarısı sadece bir kez çalışacak bir görev olduğu için aşağıdaki gibi ayarları yapıp İleri butonu ile sonraki adıma ilerliyoruz.
Bir bu görevde bir eylem türü olarak Program başlat seçimini yaparak İleri butonu ile sonraki adıma geçelim.
Gözat… butonuna tıklayarak çalıştırılacak olan Batch dosyamızı gösterelim.
Dosyamızı seçerek Aç butonuna tıklayalım.
Dosyamız seçildi. Bu ekranda çalışacak olan program veya dosyaya desteklemesi durumunda özel bir parametre tanımı yapabiliriz. Biz parametre kullanmayacağız İleri butonuna tıklayarak sonraki adıma geçebiliriz.
Oluşturulacak olan Görevin bir özeti karşımıza geldi. Son butonuna tıklayarak görevimizi oluşturalım.
Görevimiz konsolda diğer görevlerin arasına eklendi.
Görevin çalışıp çalışmadığından emin olmak için görevimiz seçili durumdayken Çalıştır butonuna tıklayalım.
Görevimiz çalıştı mevcut olan dosyalar sıkıştırılarak belirlediğimiz dizine taşındı ve sonrasında silindi.
Belirlediğimiz dizine arşivlenmiş olan dosyayı görebiliyoruz.
Umarım yararlı olur. Bir başka makalede görüşmek dileğiyle.