Ansicht:   

#264816 @balu_baer: Sicherungsscript... (pc.coding)

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!  :ok:

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:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz