16 Haziran 2015 Salı
Vbscript ile dizinler içinde dosya varlık kontolü- örnek arşivleme klasörlerinde eksik olan günü bulma
Bir arşivleme programı veritabanından hergün o güne ait verileri yilaygün.arsiv.zip isimlendirme formatında \yıl\ay\ formatında klasör yapısında diske yazmaktadır.
Ancak yıllar içinde bazı günler çalışmamış ise eksik arşivler bulunabilir.
Bu kadar klasör içinde hangi günün arşivi eksik bulmak için bir vbscript paylaşılacaktır.
dosyalar D:\Arsivleme\ klasöründe her yıla ait bir klasör ve her yıl klasöründe her aya ait bir klasör ve her ay klasöründe hergüne ait yilaygün.Arsiv.zip formatında o günün arşivi depolanmaktadır.
Örnek olarak;
16 haziran 2015 gününün arşivi
D:\Arsivleme\2015\6\20150616.Arsiv.zip
şeklinde saklanmaktadır.
Mevcut durumda 21.12.2012 gününe ait arşiv de başlanarak bugünün tarihine kadar kontrol yapılacaktır. başlama ve bitiş script içinden ayarlanabilir.
dim yil
dim ay
dim gun
dim s_ay
dim s_gun
dim Afile
Set oShell = CreateObject("WScript.Shell")
Set ofso = CreateObject("Scripting.FileSystemObject")
fld = oFSO.GetParentFolderName(Wscript.ScriptFullName)
Set objFile = oFSO.CreateTextFile(fld & "\log.txt")
set objFile = nothing
set objFolder = nothing
' OpenTextFile Method needs a Const value
' ForAppending = 8 ForReading = 1, ForWriting = 2
Const ForAppending = 8
Const ForWriting=2
Set objTextFile = oFSO.OpenTextFile (fld & "\log.txt", ForWriting,True)
' aramanın başlayacağı tarih: klasör
yil=2012
ay=12
gun=21
do while 1=1
'20121221.Events
if ay<10 then
s_ay="0" & ay
else
s_ay=ay
end if
if gun<10 then
s_gun="0" & gun
else
s_gun=gun
end if
'' 20150601.Arsiv.zip
Afile= yil & s_ay & s_gun & ".Arsiv.zip"
pth="D:\Arsivleme\" & yil & "\" & ay & "\" & Afile
If Not oFSO.FileExists(pth) Then
objTextFile.WriteLine(AFile)
End if
gun=gun+1
dt=ay & "/" & gun & "/" & yil
if not isdate(dt) then
gun=1
ay=ay+1
if ay>12 then
ay=1
yil=yil+1
end if
end if
dt=ay & "/" & gun & "/" & yil
' debug için
' if yil=2015 and ay=4 then
' msgbox day(dt) & " " & month(dt) & " " & year(dt)
' end if
' aramanın biteceği gün : bugün istenirse burada farklı bir gün ay yıl verilebilir..
if (day(dt)=day(now) and month(dt)=month(now) and year(dt)=year(now)) then
msgbox "Kontrol bitti. Log.txt dosyasina bakiniz."
exit do
end if
loop
objTextFile.Close
set objFile = nothing
set objFolder = nothing
set oFSO=nothing
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder