Avatar billede freos Nybegynder
13. september 2004 - 12:23 Der er 1 kommentar og
1 løsning

Hjælp til backup script

Hej Exp.dk

Har fundet et VBS script på nettet som går ind og laver backup af de mapper som der nu bliver skrevet i scriptet.

Meningen er at scriptet skal køres en gang om ugen hvor den skal kopier samtlige mapper og filer over som vi definere i scriptet.

Problemmet er at den kun kopier de filer over som er nye eller redigeret siden den sidste gang lavede backup, hvilket betyder at de filer som der ikke er blevet rettet i blvier der ikke taget backup af.

Backup.vbs
=========================================

Const ForWriting = 2
count = 0
sti = ""
'---------------------
' Log File (back.txt):
'---------------------
Set fs = CreateObject("Scripting.FileSystemObject")
'Set tf = fs.OpenTextFile("C:\back.txt", ForWriting, True)
'prnt date & " " & time
dato = replace(date,"/","-")
'================================================================================
' P  : Path
' BF : Backup File
'      Filenames may use wildcards - but only at end of filename and/or extension
'      Ex:    OK: dat*.n*, *.*
'          not OK: *dag.*x
' BD : Backup Directory
'================================================================================
' BackUp destination folder:
'-------------------------
Bfolder = "C:\backup\" & dato & " " & tid
'-------------------------

P "C:\Inetpub\"
BD "wwwroot"
'============================================================

'prnt FileCount

'tf.Close
'Set tf = nothing
Set fs = nothing

'MsgBox FileCount

'============ END =============== SUBROUTINES :

'--------------------------------
' P : Set Path
'--------------------------------
Sub P(path)
  sti = path
  if right(sti, 1) <> "\" then sti = sti + "\"
'  prnt ""
'  prnt "===" & sti
End Sub

'--------------------------------
' BF : Back File
'--------------------------------
Sub BF(navn)
  if instr(navn,"*") then
    s1 = ""
    s2 = ""
    pp = instr(navn,".")
    f1 = left(navn,pp-1)
    f2 = mid(navn,pp+1)
    p1 = instr(f1,"*")
    p2 = instr(f2,"*")

    if p1 then s1 = left(f1, p1-1)
    if p2 then s2 = left(f2, p2-1)

    BackWild
  else
    set f = fs.GetFile(sti & navn)
    BackFile f
  end if
End Sub

'--------------------------------
' BD : Back Directory
'--------------------------------
Sub BD(navn)
  f = sti & navn
'  prnt "    \" & navn
  BackFolder f
End Sub

'--------------------------------
' BackFile
'--------------------------------
Sub BackFile(f)
  if f.Attributes and 32 then
      dfn = Bfolder & mid(f.ParentFolder, 3)
      if right(dfn, 1) <> "\" then dfn = dfn + "\"

      if not fs.folderexists(dfn) then FolderCreate dfn
      fs.Copyfile f, dfn & f.name
      f.Attributes = f.Attributes - 32

'    prnt "*  " & f
      count = count + 1
  end if
End Sub

'-------------------------------
' BackWild
'-------------------------------
Sub BackWild()
  Set f = fs.GetFolder(sti)
  set fc = f.files
  for each fil in fc
      ext = mid(fil.name,instr(fil.name,".")+1)
      w = (left(fil.name,len(s1)) = s1 AND left(ext,len(s2)) = s2)
      if w then BackFile fil
  next
End Sub

'-------------------------------
' backFolder
'-------------------------------
Sub BackFolder(fn)
  Set f = fs.GetFolder(fn)
  set fc = f.files
  for each fil in fc
      backFile fil
  next

  Set sf = f.SubFolders
  For Each f1 in sf
      If Left(f1.name, 4) <> "_vti" then BackFolder f1.path
  Next
End Sub

'----------------------------

Sub we(s)
  wscript.echo s
End Sub

Sub prnt(s)
  we s
  tf.Writeline s
End Sub

Function FileCount()
  if count = 1 then
    FileCount = "1 fil"
  else
    FileCount = count & " filer"
  end if
End Function

Sub FolderCreate(fn)
  pfn = fs.GetParentFolderName(fn)
  if not fs.folderexists(pfn) then FolderCreate pfn
  fs.CreateFolder fn
End Sub

Mvh.

Freos
Avatar billede freos Nybegynder
13. september 2004 - 13:52 #1
fandt selv ud af det
Avatar billede osborne Praktikant
23. december 2005 - 14:47 #2
Hvad var løsningen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester