Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBscript ZIP Dateien in jedem Ordner mit Dateien aus dem root füllen

Frage Entwicklung VB for Applications

Mitglied: chrizz-at

chrizz-at (Level 1) - Jetzt verbinden

03.12.2009, aktualisiert 16:20 Uhr, 3086 Aufrufe

Hallo liebes Forum,
ich habe ein Script erstellt welches Rekursiv in jedem Ordner eine ZIP Datei erstellt.

Ich möchte nun diese ZIP Dateien die in jedem Ordner liegen mit Dateien füllen..
Und zwar jene Dateien die im Root verzeichnis jedes ordners liegen..


Die ZIP Files werden schön angelegt nur beim 2. Teil unten funktioniert das nicht mit CopyFile..
-> Hier Zeile 86!

Gibt es eine andere Methode Dateien (ohne Ordnern) aus einem die in einem Ordner liegen zusammenzufassen und in die ZIP File zu schieben?

Ausserdem sollen die Rekursionen nur bis zu einer gewissen Ebene ausgeführt werden.
zb. bis D:\705000\test\test

01.
Option Explicit 
02.
 
03.
' Aufruf der Routine 
04.
' Konstanten definieren 
05.
Const srcDir = "D:\705000" 
06.
Const destDir = "D:\705000" 
07.
Const OverWriteFiles = "true" 
08.
 
09.
' Variablen Definieren 
10.
Dim log, Logfile, ErrorLog, ErrorFile, FSO 
11.
 
12.
' Log Files öffnen 
13.
Set FSO = CreateObject("Scripting.FileSystemObject") 
14.
Set LogFile = FSO.OpenTextFile("C:\" & Date & ".log",8,true) 
15.
Set ErrorFile = FSO.OpenTextFile("C:\" & Date & "_errors.log",8,true) 
16.
 
17.
log = "" 
18.
AddLog vbCrLf & "Archivierte Daten am " & Date() & " um " & time() & vbCrLf & vbCrLf 
19.
Errorlog = "" 
20.
 
21.
ZIP srcDir, destDir, 3 
22.
kopieren srcDir, destDir, 3 
23.
 
24.
LogFile.Writeline(log) 
25.
ErrorFile.Writeline(ErrorLog) 
26.
 
27.
 
28.
Private Sub Addlog(logLine) 
29.
	log = log & logLine & CHR(13) 
30.
End Sub 
31.
 
32.
Private Sub AddErrorlog(logLine) 
33.
	errorlog = errorlog & logLine & CHR(13) 
34.
End Sub 
35.
 
36.
 
37.
private Sub ZIP(srcDir, destDir, tiefe) 
38.
 
39.
	' Deklaration der Variablen 
40.
	Dim FSO, Verzeichnis, UnterVerzeichnis 
41.
	 
42.
	' Objekt erzeugen 
43.
	Set FSO = CreateObject("Scripting.FileSystemObject") 
44.
	 
45.
	' Referenz auf SourceOrdner 
46.
	Set Verzeichnis = FSO.GetFolder(srcDir) 
47.
	 
48.
	Dim ts, BlankZIP, x, Folder, File 
49.
 
50.
	' Leere ZIP Datei erstellen, wenn keine Vorhanden in Source Ordner 
51.
	If not FSO.FileExists("test.zip") then 
52.
		Set ts = FSO.OpenTextFile(srcDir & "\" & "test.zip", 8, vbtrue) 
53.
		BlankZip = "PK" & Chr(5) & Chr(6) 
54.
		For x = 0 to 17 
55.
		BlankZip = BlankZip & Chr(0) 
56.
		ts.Write BlankZip 
57.
		Next 
58.
	End if 
59.
	 
60.
	' Alle Unterverzeichnisse auflisten 
61.
	For Each UnterVerzeichnis in Verzeichnis.Subfolders 
62.
			ZIP UnterVerzeichnis, UnterVerzeichnis, 3 
63.
	Next 
64.
End Sub 
65.
 
66.
 
67.
private Sub kopieren(srcDir, destDir, tiefe) 
68.
 
69.
	' Deklaration der Variablen 
70.
	Dim FSO, Verzeichnis, UnterVerzeichnis 
71.
	 
72.
	' Objekt erzeugen 
73.
	Set FSO = CreateObject("Scripting.FileSystemObject") 
74.
	 
75.
	'  Wenn das Verzeichnis existiert 
76.
	If FSO.FolderExists(srcDir) and (tiefe = 3) then 
77.
		AddLog srcDir & " -> " & destDir & "\" & "test.zip" 
78.
	End if 
79.
	Addlog(" " & vbCrLF) 
80.
	 
81.
	' Referenz auf SourceOrdner 
82.
	Set Verzeichnis = FSO.GetFolder(srcDir) 
83.
	 
84.
	Dim Datei 
85.
	For Each Datei in Verzeichnis.Files 
86.
		FSO.CopyFile srcDir & "\" & Datei.Name, destDir & "\" & "test.zip" 
87.
		if Err.Number <> 0 then 
88.
			AddErrorLog(Now() & ": Fehler beim Kopieren von: " & Datei.Name & " - Pfad: " & Datei.Path & " - Größe: " & FormatNumber(Datei.Size/1024,2,,,True) & " KB" & vbCrLf) 
89.
			AddErrorLog("Grund: " & Err.Description & vbCrLf) 
90.
			Err.Clear 
91.
		End if 
92.
	Next 
93.
	 
94.
	' Alle Unterverzeichnisse auflisten 
95.
	For Each UnterVerzeichnis in Verzeichnis.Subfolders 
96.
			kopieren UnterVerzeichnis, UnterVerzeichnis, 3 
97.
	Next 
98.
End Sub 
99.
Errorfile.Close 
100.
Logfile.Close
Bitte um eure Hilfe
LG Christoph
Ähnliche Inhalte
PHP
gelöst ZIP-Datei auf Server speichern (23)

Frage von Yanmai zum Thema PHP ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

C und C++
C-sharp ZIP-Ordner an PHP senden (10)

Frage von Yanmai zum Thema C und C ...

Server
gelöst Als Benutzer Root Datei veraendert (7)

Frage von TomTheCat zum Thema Server ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (24)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (10)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Netzwerkmanagement
Suche eine Software für Cloudverwaltung (6)

Frage von tsunami zum Thema Netzwerkmanagement ...

Google Android
Musik Wiedergabe am PC mit Smartphone über Bluetooth steuern (5)

Frage von justlukas zum Thema Google Android ...