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!

Empfohlene Beiträge

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 zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...