verfaßt von effeff, Ostfriesland, 23.03.2011, 10:51:22
(editiert von effeff, 23.03.2011, 10:52:07)
Hallo,
ich habe nun mal ein bisschen Muße gehabt, das von mir ungeprüfte Script nachzubessern. Es sollte nun funktionieren und selbst erklärend sein. 7-Zip habe ich zwar auch auf meinen Rechner drauf, wusste aber bisher nicht, dass man es hervorragend zum Scripten benutzen kann. Schönen Dank für diese Erleuchtung!
Hier also mein Entwurf, den du in eine Textdatei kopieren musst, deren Endung du \".vbs\" umbenennst:
\'Script by effeff 03/2011
\'Das Script sucht aus einem Verzeichnis alle Dateien mit einer bestimmten Endung heraus und
\'erstellt mittels 7-Zip von jeder Datei eine gepackte Version, in deren Dateiname das
\'Erstellungsdatum der Originaldatei enthalten ist. Die gepackten Dateien werden in einem
\'Unterverzeichnis des durchsuchten Verzeichnisses gespeichert. Zum Anpassen des Scriptes
\'bitte die mit Kommentaren versehenen Zeilen benutzen.
DIM FSO
DIM fld
DIM fil
DIM Datum
Dim Jahr
Dim Monat
Dim Tag
Dim Stunden
Dim Minuten
Dim Sekunden
Dim Befehl
Dim oShell
Dim Backupverzeichnis
Dim Sicherungsverzeichnis
Dim Dateityp
Dim i
On Error Resume Next
Set FSO=CreateObject(\"Scripting.FileSystemObject\")
\'Hier musst du den kompletten Pfad angeben, in welchem die zu sichernden Dateien sich befinden:
Backupverzeichnis=\"D:\\Backup\\\"
\'Hier wird ein Unterverzeichnis angegeben, in welches die gepackten Dateien gespeichert werden sollen:
Sicherungsverzeichnis=Backupverzeichnis & \"7z\\\"
\'Hier wird angegeben, welche Endung die zu packenden Dateien haben:
Dateityp=\".bak\"
Set fld=FSO.GetFolder(Sicherungsverzeichnis)
If fld Is Nothing Then
FSO.CreateFolder(Sicherungsverzeichnis)
End If
Set fld=FSO.GetFolder(Backupverzeichnis)
i=0
For Each fil in fld.Files
If Right(fil.Name, 4)=\"Dateityp\" Then
Jahr=Year(fil.DateCreated)
Monat=Zweistellig(Month(fil.DateCreated))
Tag=Zweistellig(Day(fil.DateCreated))
Stunden=Zweistellig(Hour(fil.DateCreated))
Minuten=Zweistellig(Minute(fil.DateCreated))
Sekunden=Zweistellig(Second(fil.DateCreated))
Datum=Jahr & Monat & Tag & Stunden & Minuten & Sekunden
\'Hier wird der Befehl zum packen zusammengebastelt. Für Pfade mit Leerzeichnen ist das erste Beispiel zu wählen/anzupassen. Ansonsten das zweite Beispiel bitte anpassen.
Befehl=\"C:\\\" & CHR(34) & \"Program Files\" & CHR(34) & \"\\7-Zip\\7z a -mx9 \" & Sicherungsverzeichnis & \"Backup_vom_\" & Datum & \".7z \" & Backupverzeichnis & fil.Name
\'Befehl=\"C:\\Programme\\7zip\\7z a -mx9 \" & Sicherungsverzeichnis & \"Backup_vom_\" & Datum & \".7z \" & Backupverzeichnis & fil.Name
Set oShell = WScript.CreateObject (\"WScript.Shell\")
oShell.run Befehl
Set oShell = Nothing
i=i+1
End If
Next
Set fil=Nothing
Set fld=Nothing
Set FSO=Nothing
MsgBox (\"Die 7zip-Verarbeitung sollte beendet sein!\" & vbCrLf & \"Es wurden \" & i & \" Dateien gesichert\" & vbCrLf & \" in \" & Sicherungsverzeichnis & \"!\")
Function Zweistellig (Nr)
If Nr < 10 then
Zweistellig= \"0\" & Nr
Else
Zweistellig=Nr
End If
End Function
--
Gruß,
ff
Möge TUX mit dir sein!
gesamter Thread: