Top-Themen

Aktuelle Themen (A bis Z)

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

Dateien erst nach Abgleich mit Archiv löschen

Mitglied: 43344

43344 (Level 1)

25.03.2008, aktualisiert 18.10.2012, 3023 Aufrufe, 5 Kommentare

Tach zusammen,

ich habe folgendes geniale Teil:
01.
Set fso = CreateObject("Scripting.FileSystemObject")
02.
Set WSHShell = WScript.CreateObject("WScript.Shell")
03.
On Error Resume Next
04.

05.
'* hier eigenen Bedürfnissen anpassen *
06.

07.
strOrdnerliste = "D:\Sicherung\Ordnerliste.txt"
08.
strAusschlussliste = "D:\Sicherung\Ausschluss.txt"
09.

10.
Set objOrdnerliste = fso.OpenTextFile(strOrdnerliste, 1)
11.
Verzeichnis = Split(objOrdnerliste.ReadAll, vbCrLF)
12.
objOrdnerliste.Close
13.

14.
Set objAusschlussliste = fso.OpenTextFile(strAusschlussliste, 1)
15.
If Not objAusschlussliste.AtEndOfStream Then 'falls nicht schon am Dateiende (= Datei ist leer) ...
16.
	Exclude = objAusschlussliste.ReadLine ' ... erste Zeile lesen und speichern ...
17.
Else
18.
	Exclude = "" '... ansonsten gibt es keine Ausnahmen beim Löschen.
19.
End If
20.

21.
objAusschlussliste.Close
22.

23.
Aufheben = 1 'Anzahl der Tage
24.

25.
' * Ende der Anpassungen *
26.

27.
Heute = Date()
28.
For n = 0 To UBound(Verzeichnis) 
29.
	Set Ordner = fso.GetFolder(Verzeichnis(n))
30.
	DeleteInFolder(Ordner)
31.
Next
32.

33.
Sub DeleteInFolder(Ordner)
34.
Set Dateien = Ordner.Files
35.
' Alle Dateien in diesem Ordner abklappern
36.
For Each Datei In Dateien
37.
	If Datei.DateLastModified < (Heute - Aufheben) Then
38.
		Ext = Mid(Datei.Name, InStrRev(Datei.Name, "."))
39.
		If InStr(Exclude, Ext) = 0 Then
40.
			On Error Resume Next
41.
			Datei.Delete
42.
			If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit
43.
			On Error Goto 0
44.
		End If
45.
	End If
46.
Next
47.

48.
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
49.
For Each Unter In Ordner.SubFolders
50.
	DeleteInFolder(Unter)
51.
	If (Unter.SubFolders.Count + Unter.Files.Count) = 0 Then Unter.Delete
52.
Next
53.
End Sub
hier: https://www.administrator.de/forum/alte-dateien-nach-x-tagen-l%c3%b6sche ... gefunden.


Kann man dem Tool noch erklären, dass es die alten Dateien ERST GENAU DANN löschen darf, wenn diese Dateien an einem anderen Ort (Archiv) vorhanden sind ????


Grueße vom Dorf ...
[Edit Biber] Als <code> formatiert. [/Edit]
Mitglied: bastla
25.03.2008, aktualisiert 18.10.2012
Hallo Stylewalker!

Kann man dem Tool noch erklären, dass es die alten Dateien ERST GENAU DANN löschen darf, wenn diese Dateien an einem anderen Ort (Archiv) vorhanden sind ?
Wenn Du dem Tool (oder wenigstens mir) sagen kannst, wo (gleiche Ordnerstruktur?) / wie (nur Namensgleichheit oder zB auch gleiches Änderungsdatum?) im "Archiv" nach der jeweiligen Datei zu suchen ist ...

Abgesehen davon würde sich dafür aber vielleicht eine "Verschiebe"-Lösung (in einem der öfter hier im Forum vorkommenden Beiträge zum Thema "alte Dateien" oder "alte Ordner" - wie etwa "Robocopy - Alte Ordner verschieben" - solltest Du fündig werden) eher anbieten.

Grüße
bastla
Bitte warten ..
Mitglied: 43344
26.03.2008 um 07:06 Uhr
Morgen bastla,

zur Geschichte:

Im Moment zieh ich mit Robocopy die Dateien, die älter sind als xx Tage aus dem zu durchsuchenden Verzeichnis raus, überprüfe mit einem "if exist", ob die Datei im Archiv (auf einer zweiten Festplatte, in gleicher Ordnerstruktur) existiert, bevor diese gelöscht wird. Da die reine Überprüfung, ob die Datei "halt da" ist nicht so prall ist, wäre darüberhinaus eine Überprüfung auf z.B. gleiche Dateigröße/gleiches Änderungsdatum quzasi ideal

Gruß

Style
Bitte warten ..
Mitglied: bastla
26.03.2008 um 15:36 Uhr
Hallo Stylewalker!

... überprüfe mit einem "if exist" ...
"fc /b" wäre noch genauer als der Vergleich hinsichtlich Größe / Datum ...

Grüße
bastla
Bitte warten ..
Mitglied: 43344
31.03.2008 um 06:19 Uhr
Hast natürlich recht, funktioniert .... aber nur mal interessehalber: wie würde das mit VB aussehen???
Bitte warten ..
Mitglied: bastla
31.03.2008 um 07:46 Uhr
Hallo Stylewalker!

Da VBS keinen zu "fc" vergleichbaren Befehl kennt, könntest Du, wie oben schon angemerkt, Dateidatum und zB auch -größe vergleichen ("File.DateLastModified", "File.Size")oder trotzdem "fc" verwenden (ungetestete Skizze):
01.
If Not fc("D:\Datei1.doc", "E:\Datei1.doc") Then
02.
	'Dateien sind unterschiedlich ...
03.
End If
04.

05.
Function fc(File1, File2)
06.
Set objShell = CreateObject("WScript.Shell")
07.
Set objExec = objShell.Exec("fc /b " & Chr(34) & File1 & Chr(34) & " " & Chr(34) & File2 & Chr(34))
08.
strResults = LCase(objExec.StdOut.ReadAll)
09.
If InStr(strResults, "fc: keine unterschiede gefunden") Then
10.
	fc = True
11.
Else
12.
	fc = False
13.
End If
14.
End Function
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse

gelöst Frage von grisurBatch & Shell4 Kommentare

Hallo zusammen, habe mich extra angemeldet, da ich bei einem kleinen Problem nicht so schnell weiterkomme. Bin Batch-Anfänger und ...

Backup

Datensicherung ARCHIV

Frage von fautec56Backup12 Kommentare

Fileserver Betriebssystem 2008 R2 Standard Wir haben auf unserem Fileserver ein Archiv eingerichtet. ( PDF-Dateien) Dieses Archiv wird mit ...

Backup

Archiv Konzept - Ideen?

gelöst Frage von DanielZ87Backup3 Kommentare

Hallo Admins, ich bin gerade dabei für unsere Firma ein Archivierungs-Konzept zu erstellen (Filer - 60 TB). Aktuell ist ...

Outlook & Mail

Outlook 2013 - gemeinsames archiv für 2 PCs - eine PST Datei

Frage von AKChrisOutlook & Mail7 Kommentare

Hallo, ich würde gerne eine PST Datei für die Archivierung von 2 PCs nutzen, also nicht die Haupt PST-Datei ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 2 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 2 TagenSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 3 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 4 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Router & Routing
Lancom-VPN-Client
Frage von FM28880Router & Routing15 Kommentare

Hallo zusammen, ich habe heute zwei Rechner mit einem Lancom VPN-Client eingerichtet. Die VPN-Verbindung wird aufgebaut und steht. Jedoch ...

DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS13 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V13 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...