Jump to content

Frage zu diesem Script ( zum Backup)


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hi,

ich habe mich für die teilweise Neuorganisation der Datensicherung bei uns für dieses Script entschieden:

Dim verzeichnis1, verzeichnis2, verzeichnis3, verzeichnis4, verzeichnis5, verzeichnis6, verzeichnis7

verzeichnis1=InputBox("Welcher Ordner sollen gesichert werden?")

verzeichnis2=InputBox("Welcher Ordner sollen gesichert werden?")

verzeichnis3=InputBox("Welcher Ordner sollen gesichert werden?")

BackupPath = "H:\Backup"

If Wscript.Arguments.Count = 0 Then

Quantity = 7

redim MyData(Quantity)

MyData(1) = verzeichnis1

MyData(2) = verzeichnis2

MyData(3) = verzeichnis3

Else

redim MyData(1)

MyData(1) = Wscript.Arguments(0)

Quantity = 1

End If

set fso = CreateObject("Scripting.FileSystemObject")

strScript = WScript.ScriptFullName

strScript = fso.GetFileName( strScript )

strScript = left( strScript, len(strScript) - 4 )

StartMe = msgbox("" & vbcrlf & vbcrlf & _

"Die Daten werden gesichert nach " & BackupPath & " (" & strScript & ")" & vbcrlf & vbcrlf & _

"Möchten Sie das Backup jetzt starten ? ?" , 33, "Backup Tool")

if StartMe = 2 then

wscript.quit

End if

count = 0

dim arrResults

redim arrResults(0)

If right(BackupPath, 1) <> "\" then

BackupPath = BackupPath & "\"

End If

call CheckPath

if not fso.folderExists ( BackupPath ) then

fso.CreateFolder( BackupPath )

end if

If left(BackupPath , 1) = "\" then

for ss = 1 to len(BackupPath )

strCh = mid(BackupPath , ss, 1)

if strCh = "\" then countslash = countslash + 1

if countslash = 3 then

drv = ss + 3

end if

next 'ss

if not countslash >= 3 then msgbox "Error in script relative to network path"

else

drv = 5

End If

For i = 1 to Quantity

If MyData(i) <> "" then

if fso.DriveExists( MyData(i) ) Then

call backup( MyData(i) )

elseif fso.folderExists(MyData(i)) then

call MakeFolderPath( BackupPath & right(MyData(i), len(MyData(i))-3 ) )

call backup( MyData(i) )

elseif fso.fileExists(MyData(i)) then

call FileBackup( MyData(i) )

else

msgbox MyData(i) & vbcrlf & vbcrlf & "Diese Datei bzw. dieses Verzeichnis scheint nicht zu existieren" & _

vbcrlf & "Bitte vergewissern Sie sich ob die richtige Dateibzw. das richtige Verzeichnis angegeben wurde" & vbcrlf & _

"und die Datei oder das Verzeichnis nicht umbenannt, verschoben oder gelöscht wurde.", 48, "Datei oder Verzeichnis Fehler"

end if

End If

Sub Backup( mypath )

if ExcludeF( mypath ) = False then

Set fldr = fso.GetFolder( myPath )

For Each f in fldr.Files

DoEvents

If not fso.folderExists( BackupPath & right(myPath, len(myPath)-3 )) then

call MakeFolderPath( BackupPath & right(myPath, len(myPath)-3 ))

End if

If fso.DriveExists( mypath ) Then

backfolder = BackupPath

else

backfolder = BackupPath & right(fldr, len(fldr)-3 ) & "\"

end if

ext = right(Lcase(f.name), 3)

if ext <> "tmp" then

backupfile = backfolder & f.name

If fso.fileExists( backupfile ) then

if fso.GetFile(f).DateLastModified > fso.GetFile(backupfile).DateLastModified then

fso.CopyFile f, backfolder, true

count = count + 1

ReDim Preserve arrResults(count)

arrResults(count) = f

end if

Else

fso.CopyFile f, backfolder, true

count = count + 1

ReDim Preserve arrResults(count)

arrResults(count) = f

End if

end if

DoEvents

Next

For Each Folder In fldr.SubFolders

Call Backup(Folder)

Next

End if

End Sub

Sub FileBackup( myFile )

set f = fso.GetFile( myFile )

backupfile = BackupPath & f.name

If fso.fileExists( backupfile ) then

if fso.GetFile(f).DateLastModified > fso.GetFile(backupfile).DateLastModified then

fso.CopyFile f, BackupPath , true

count = count + 1

ReDim Preserve arrResults(count)

arrResults(count) = f

end if

Else

fso.CopyFile f, BackupPath , true

count = count + 1

ReDim Preserve arrResults(count)

arrResults(count) = f

End if

End Sub

Sub MakeFolderPath( myfolder )

For x = drv to len( myFolder )

MyChr = mid( myFolder , x, 1)

if mychr = "\" then

xfolder = left(myfolder, x-1)

if not fso.folderExists ( xFolder ) then

fso.CreateFolder( xFolder )

end if

end if

Das funktioniert auch bestens. Allerdings bin ich noch nicht so ganz zufrieden, denn entweder ich gebe die Verzeichnisse direkt vor die gesichert werden sollen, oder ich lasse die MA über die InputBoxen am Anfang selbst die Verzeichnisse festlegen. Ich hätte es aber gerne, das der MA einmal die Verzeichnisse definiert und später nur bei Bedarf über die Input Box die Verzeichnisse ändert. Habt ihr da eine Idee, wie ich nur bei Bedarf auf die Input Box zugreifen kann, bzw. Wie ich beim ersten Start die Verzeichnisse definieren kann und das script sich diese "merkt".

Danke unnd Gruss

Link to comment

In diesem Fall nicht. Für die anderen Rechner bzw. Server haben wir Backupsoftware im Einsatz. Die Lösung wollte / will ich aber für einige Notebooks umsetzen. KLappt ja soweit auch ganz gut. Nur leider hänge ich noch daran. Das man nur einmal die Verzecihnisse definiert und danach nur bei Bedarf diese ändert.

Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...