'* Mp 20.05.2012 '* '* Klic AutoArhiv.vbs brez parametrov pogleda, ali obstoja [AutoArhiv.ini] z istim imenom kot ta izvajalna vbs doteka (AutoArhiv.vbs/AutoArhiv.ini). '* Če obstoja, iz nje prebere parametre '* Če ne obstoja, se poti in imena vzamejo iz PotBaze.txt. Arhiv se naredi v mapo, kjer se nahaja AutoArhiv.vbs '* '* Klic AutoArhiv.vbs [AutoArhiv.ini] prebere parametre iz [AutoArhiv.ini]. Ime inicializacijske datotekeje je lahko poljubno. '* V primeru, da sekcija Nastavitve za uporabnika ni zakomentirana, obveljajo slednje nastavitve Dim lsPotArhiv, lsPotArhivNet, lsImeArhivNaDate, lsImeArhivPredpona, lsPotInImeScanDoc, lsImeArhivScanDocPredpona, lsBazaIme, lsServerIme, lbAliImeArhivNaDate, lbAliUpdateStats, lsNapredek, ArhivJeOk Dim lsFilePath, lsOdKod, oTextFilein, lsReadLine, lsSelfZip, lsDir, lsLevo, lsDesno, ldDatum, liPos Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set WshShell = WScript.CreateObject("WScript.Shell") Set oFso = CreateObject("Scripting.FileSystemObject") lsImeArhivNaDate= "Arhiv" & Year(date()) & Right("00" & Month(date()), 2) & Right("00" & Day(date()), 2) & "_" & Right("00" & Hour(Time()), 2) & Right("00" & Minute(Time()), 2) & Right("00" & Second(Time()), 2) ArhivJeOk=False '* Nastavitve se preberejo iz PotBaze lsFilePath=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - len(WScript.ScriptName)) & "PotBaze.txt" IF oFso.FileExists(lsFilePath) = False Then lsFilePath="C:\Finesa.Xp\PotBaze.txt" End if Set oTextFileIn = oFso.OpenTextFile(lsFilepath, ForReading) lsReadLine = oTextFilein.ReadLine lsDesno = Mid(lsReadLine, InStr(1, lsReadLine, "@", vbTextCompare)) lsLevo = Replace(lsReadLine, lsDesno, "", 1, -1, vbTextCompare) lsServerIme=lsLevo lsReadLine = lsDesno lsDesno = Mid(lsReadLine, InStr(1, lsReadLine, "#", vbTextCompare)) lsLevo = Replace(lsReadLine, lsDesno, "", 2, -1, vbTextCompare) lsBazaIme=lsLevo lsDesno=Trim(lsDesno) IF Right(lsDesno, 1)="\" Then '* Ok ELSE lsDesno=lsDesno & "\" End IF lsPotArhivNet=Replace(lsDesno, "#", "", 1, -1, vbTextCompare) & "ArhivSQL\AutoArhiv\" lsPotArhiv =Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - Len(WScript.ScriptName)) '* Če obstoja ini datoteka, ki ima enako ime kot ta datoteka (ponavadi AutoArhiv.vbs/AutoArhiv.ini), se nastavitve vzamejo iz ini datoteke lsFilePath=Replace(WScript.ScriptFullName, ".vbs", ".ini", 1, -1, vbTextCompare) '* Če je pri klicu navedna ini datoteka, obvelja slednja IF Wscript.Arguments.Count = 0 Then '* Brez vhodnih parametrov. Ostane kot je navedeno zgoraj. ELSE lsFilePath=Wscript.Arguments(0) End IF IF oFso.FileExists(lsFilePath) = True Then Set oTextFileIn = oFso.OpenTextFile(lsFilepath, ForReading) Do Until oTextFileIn.AtEndOfStream lsReadLine = oTextFilein.ReadLine liPos = InStr(1, lsReadLine, "'*", vbTextCompare) If liPos > 0 Then lsReadLine = Trim(Left(lsReadLine, liPos - 1)) End If IF Left(lsReadLine, Len("lsServerIme"))="lsServerIme" Then lsServerIme=Trim(Replace(Replace(lsReadLine,"lsServerIme=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lsBazaIme"))="lsBazaIme" Then lsBazaIme=Trim(Replace(Replace(lsReadLine,"lsBazaIme=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lsPotArhivNet"))="lsPotArhivNet" Then lsPotArhivNet=Trim(Replace(Replace(lsReadLine,"lsPotArhivNet=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lsPotArhiv"))="lsPotArhiv" Then lsPotArhiv=Trim(Replace(Replace(lsReadLine,"lsPotArhiv=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lsPotInImeScanDoc"))="lsPotInImeScanDoc" Then lsPotInImeScanDoc=Trim(Replace(Replace(lsReadLine,"lsPotInImeScanDoc=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lbAliImeArhivNaDate"))="lbAliImeArhivNaDate" Then lbAliImeArhivNaDate=CBool(Replace(Replace(lsReadLine,"lbAliImeArhivNaDate=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF IF Left(lsReadLine, Len("lbAliUpdateStats"))="lbAliUpdateStats" Then lbAliUpdateStats=CBool(Replace(Replace(lsReadLine,"lbAliUpdateStats=", "", 1, -1, vbTextCompare), """", "", 1, -1, vbTextCompare)) End IF Loop End IF '*********************************************************************** '* Nastavitve za uporabnika. Vrstni red je enak vrstnemu redu parametrov '* lsServerIme="." '* lsBazaIme="Finesa" '* lsPotArhivNet="C:\Finesa.Xp\ArhivSQL\AutoArhiv\" '* lsPotArhiv="C:\Finesa.Xp\ArhivSQL\AutoArhiv\" '* lsPotInImeScanDoc="" '* Če je pot prazna, se mapa ne arhivira '* lbAliImeArhivNaDate = False '* lbAliUpdateStats = False '*********************************************************************** On Error Resume Next Set objExplorer = Wscript.CreateObject("InternetExplorer.Application") IF Err.Number = 0 Then objExplorer.Navigate "about:blank" objExplorer.Toolbar = 0 objExplorer.StatusBar = 0 objExplorer.Width = 610 objExplorer.Height = 200 objExplorer.Left = 400 objExplorer.Top = 200 Do While (objExplorer.Busy) Wscript.Sleep 200 Loop objExplorer.Visible = 1 objExplorer.Document.Title = "Arhiviranje podatkovne zbirke" End If On Error GoTo 0 Napredek "

" & "Podatkovna zbirka: " & lsServerIme & "@" & lsBazaIme & "

", False Napredek "

" & "Delovna mapa:      " & lsPotArhivNet & "

", False Napredek "

" & "Arhivska mapa:      " & lsPotArhiv & "

", False Napredek "

" & "___________________________________________________________" & "

", True Napredek "Poteka arhiviranje podatkovne zbirke ... ", True IF oFso.FolderExists(lsPotArhivNet) = False Then Napredek "Mapa ne obstoja: " & lsPotArhivNet, False Izhod '* Če ni mogoče narediti arhiva, sledi takojšen izhod END If IF oFso.FolderExists(lsPotArhiv) = False Then Napredek "Mapa ne obstoja: " & lsPotArhiv, False Izhod '* Če ni mogoče narediti arhiva, sledi takojšen izhod END If Napredek "SQL Backup ... ", False lsFilePath=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - len(WScript.ScriptName)) & "RezultatBackUp.txt" WshShell.Run "C:\Finesa.XP\Internet\osql -S" & lsServerIme & " -d" & lsBazaIme & " -E -Q""dbo.qfsArhiviranje '" & lsPotArhivNet & "FinesaArhiv.dat'"" -o""" & lsFilePath & """", 7, True IF (oFso.FileExists(lsPotArhivNet & "FinesaArhiv.dat")) = True then Napredek "OK", True ELSE WshShell.Run "C:\Finesa.XP\Internet\osql -S" & lsServerIme & " -d" & lsBazaIme & " -UArhivar -PArhivar1 -Q""dbo.qfsArhiviranje '" & lsPotArhivNet & "FinesaArhiv.dat'"" -o""" & lsFilePath & """", 7, True IF (oFso.FileExists(lsPotArhivNet & "FinesaArhiv.dat")) = True then Napredek "OK", True ELSE Napredek "Napaka - Uporabnik Arhivar !!!", True Izhod '* Če ni mogoče narediti arhiva, sledi takojšen izhod End IF End If '************************************************************************************************************************************** IF False Then '* Vključi, če želiš še Update Statistics Napredek "SQL sp_updatestats ... ", False lsFilePath=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - len(WScript.ScriptName)) & "RezultatSpUpdateStats.txt" IF (oFso.FileExists(lsFilePath)) = True then oFso.DeleteFile lsFilePath End IF WshShell.Run "C:\Finesa.XP\Internet\osql -S" & lsServerIme & " -d" & lsBazaIme & " -E -Q""sp_updatestats"" -o" & lsFilePath, 7, True Set oTextFileIn = oFso.OpenTextFile(lsFilepath, ForReading) lsReadLine = oTextFilein.ReadLine If InStr(1, lsReadLine, "Msg", vbTextCompare)=0 Then Napredek "OK", True ELSE Napredek "Napaka !!!", True End IF End IF '************************************************************************************************************************************** Napredek "Zip ... ", False lsImeArhivPredpona=lsBazaIme & "Arhiv" WshShell.Run "C:\Finesa.XP\Internet\infozip-win.exe """ & lsPotArhiv & lsImeArhivPredpona & ".zip"" """ & lsPotArhivNet & "FinesaArhiv.dat""",7,True IF (oFso.FileExists( lsPotArhiv & lsImeArhivPredpona & ".zip")) = True then Napredek "OK", True ELSE Napredek "Napaka !!!", True Izhod '* Če ni mogoče narediti Zip-a, sledi takojšen izhod End IF IF lbAliImeArhivNaDate = True Then '* Varianta, če želiš da se hranijo vsi arhivi z imenom LetoMesecDan Napredek "Poimenovanje arhiva ... ", False IF (oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & ".zip")) = True then oFso.CopyFile lsPotArhiv & lsImeArhivPredpona & ".zip", lsPotArhiv & lsImeArhivNaDate & ".zip" oFso.DeleteFile lsPotArhiv & lsImeArhivPredpona & ".zip" IF (oFso.FileExists(lsPotArhivNet & "FinesaArhiv.dat")) = True then oFso.DeleteFile lsPotArhivNet & "FinesaArhiv.dat" End IF End If Napredek "OK", True Napredek "Arhiv je shranjen v: " & lsPotArhiv & lsImeArhivNaDate & ".zip", False ArhivJeOk=True Else Napredek "Poimenovanje arhiva ... ", False IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "07.zip") = True Then oFso.DeleteFile lsPotArhiv & lsImeArhivPredpona & "07.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "06.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "06.zip ", lsPotArhiv & lsImeArhivPredpona & "07.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "05.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "05.zip ", lsPotArhiv & lsImeArhivPredpona & "06.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "04.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "04.zip ", lsPotArhiv & lsImeArhivPredpona & "05.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "03.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "03.zip ", lsPotArhiv & lsImeArhivPredpona & "04.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "02.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "02.zip ", lsPotArhiv & lsImeArhivPredpona & "03.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "01.zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & "01.zip ", lsPotArhiv & lsImeArhivPredpona & "02.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & ".zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivPredpona & ".zip", lsPotArhiv & lsImeArhivPredpona & "01.zip" End If IF (oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "01.zip")) = True then Napredek "OK", True ArhivJeOk=True ELSE Napredek "Napaka !!!", True ArhivJeOk=False End IF '* Mesečna opravila ldDatum=Date lsFilePath=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - Len(WScript.ScriptName)) & lsImeArhivPredpona & Year(ldDatum) & Month(ldDatum) & ".txt" IF oFso.FileExists(lsFilePath) = False Then '* Če za ta mesec še ne obstoja signalna datoteka opravi mesečna opravila '* Shrani še mesečno lsImeArhivPredpona & "01.zip" Napredek "Izdelava mesečne kopije ... ", False IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivPredpona & "03.zip") = True Then oFso.DeleteFile lsPotArhiv & "Mes" & lsImeArhivPredpona & "03.zip" End If IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivPredpona & "02.zip") = True Then oFso.MoveFile lsPotArhiv & "Mes" & lsImeArhivPredpona & "02.zip ", lsPotArhiv & "Mes" & lsImeArhivPredpona & "03.zip" End If IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivPredpona & "01.zip") = True Then oFso.MoveFile lsPotArhiv & "Mes" & lsImeArhivPredpona & "01.zip ", lsPotArhiv & "Mes" & lsImeArhivPredpona & "02.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "01.zip") = True Then oFso.CopyFile lsPotArhiv & lsImeArhivPredpona & "01.zip", lsPotArhiv & "Mes" & lsImeArhivPredpona & "01.zip" End If Napredek "OK", True IF Len(lsPotInImeScanDoc)>0 Then '* Če pot do mape ScanDoc ni prazna, shrani vse v tej mapi Napredek "Zip ScanDoc ... ", False lsImeArhivScanDocPredpona="ScanDoc" WshShell.Run "C:\Finesa.XP\Internet\infozip-win.exe -r """ & lsPotArhiv & lsImeArhivScanDocPredpona & ".zip"" " & Replace(lsPotInImeScanDoc, "'", """", 1, -1, vbTextCompare), 7, True IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "03.zip") = True Then oFso.DeleteFile lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "03.zip" End If IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "02.zip") = True Then oFso.MoveFile lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "02.zip ", lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "03.zip" End If IF oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "01.zip") = True Then oFso.MoveFile lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "01.zip ", lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "02.zip" End If IF oFso.FileExists(lsPotArhiv & lsImeArhivScanDocPredpona & ".zip") = True Then oFso.MoveFile lsPotArhiv & lsImeArhivScanDocPredpona & ".zip", lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "01.zip" End If IF (oFso.FileExists(lsPotArhiv & "Mes" & lsImeArhivScanDocPredpona & "01.zip")) = True then Napredek "OK", True ELSE Napredek "Napaka !!!", True End IF End IF '* Kreiranje signalne datoteke za ta mesec. Set aFile = oFso.CreateTextFile(lsFilePath, True) '* Kreiraj signalno datoteko za ta mesec Set aFile = oFso.GetFile(lsFilePath) '* Shrani (Zapri) signalno datoteko za ta mesec '* Pobriši signalno datoteko za prejšnji mesec ldDatum=DateSerial(Year(ldDatum), Month(ldDatum), 0) lsFilePath=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - Len(WScript.ScriptName)) & lsImeArhivPredpona & Year(ldDatum) & Month(ldDatum) & ".txt" IF (oFso.FileExists(lsFilePath)) = True then oFso.DeleteFile lsFilePath End IF End IF IF (oFso.FileExists(lsPotArhiv & lsImeArhivPredpona & "01.zip")) = True then Napredek "Arhiv je shranjen v: " & lsPotArhiv, False ArhivJeOk=True ELSE ArhivJeOk=False End IF '* Pobriši začasne datoteke IF (oFso.FileExists(lsPotArhivNet & "FinesaArhiv.dat")) = True then oFso.DeleteFile lsPotArhivNet & "FinesaArhiv.dat" End If End If IF ArhivJeOk=True Then Wscript.Sleep 15000 ELSE MsgBox "Pri arhiviranju podatkovne zbirke je prišlo do napake!",, "Finesa" End IF On Error Resume Next objExplorer.Quit '*WScript.Quit RETURN FUNCTION Napredek(argNapredek, argLF) On Error Resume Next lsNapredek=lsNapredek & argNapredek objExplorer.Document.Body.InnerHTML = lsnapredek IF argLF=True Then objExplorer.Height = objExplorer.Height + 50 lsNapredek=lsNapredek & "
 
" End IF On Error GoTo 0 End Function FUNCTION Izhod() MsgBox "Pri arhiviranju podatkovne zbirke je prišlo do napake!",, "Finesa" On Error Resume Next objExplorer.Quit WScript.Quit End Function